Size: a a a

Laravel для начинающих

2020 June 27

А

Александр in Laravel для начинающих
Egor Gruzdev
не нужно, база сама вернет в нужной кодировки и запишет в нужной
Попробую такой вариант. Для миграций сделаю родительский класс, который будет ставить кодировку cp1251, а так - пусть стоит utf8. Интересно даже, получится ли
источник

V

Vitaly in Laravel для начинающих
стандарт конечно в Utf хранить .. но вот в древних местах встречаются траблы
источник

EG

Egor Gruzdev in Laravel для начинающих
Vitaly
мало ли что я указал при коннекте .. но если в БД данные в другой кодировке я получу кашу из символов а не данные
я не из воздуха взял данную информацию, у меня в данный момент сайт на поддержке, где часть таблицы в cp1251, а те что создавал я в utf-8
ничего специально не настраивал, конфиг по умолчанию в laravel
старые модули также работают через соединение laravel и проблем нет
только, но на сервере стоит Percona Database 5.6, но локально у меня mysql 5.7 и проблем нет
источник

V

Vitaly in Laravel для начинающих
Egor Gruzdev
я не из воздуха взял данную информацию, у меня в данный момент сайт на поддержке, где часть таблицы в cp1251, а те что создавал я в utf-8
ничего специально не настраивал, конфиг по умолчанию в laravel
старые модули также работают через соединение laravel и проблем нет
только, но на сервере стоит Percona Database 5.6, но локально у меня mysql 5.7 и проблем нет
значит что-то под капотом .. не верю я в авто перекодировку .. не логично это и сложно .. на основании чего драйвер поймет что из чего конвертит .. может у меня в БД вообще дос кодировка
источник

EG

Egor Gruzdev in Laravel для начинающих
Vitaly
значит что-то под капотом .. не верю я в авто перекодировку .. не логично это и сложно .. на основании чего драйвер поймет что из чего конвертит .. может у меня в БД вообще дос кодировка
в базе информация о кодировках расставлена по таблицам, строкам и т.д., она сама за всем следит
источник

А

Александр in Laravel для начинающих
Vitaly
значит что-то под капотом .. не верю я в авто перекодировку .. не логично это и сложно .. на основании чего драйвер поймет что из чего конвертит .. может у меня в БД вообще дос кодировка
Имеется в виду, скорее всего, кодировка соединения. Т.е. клиент указывает кодировку utf8, а в базах, таблицах, столбцах - кодировка cp1251 и база видит что они разные и отдаёт клиенту всё в utf8
источник

EG

Egor Gruzdev in Laravel для начинающих
Александр
Имеется в виду, скорее всего, кодировка соединения. Т.е. клиент указывает кодировку utf8, а в базах, таблицах, столбцах - кодировка cp1251 и база видит что они разные и отдаёт клиенту всё в utf8
да
источник

V

Vitaly in Laravel для начинающих
Egor Gruzdev
в базе информация о кодировках расставлена по таблицам, строкам и т.д., она сама за всем следит
да понятно , что там кодировка указана .. но не может она следить за тем что я туда пихаю, если это не выходит за рамки допустимого .. как например с эмодзи .. а с 1251 и utf все просто таблицы просто не совпадают , но не выходят за границы .. поэтому запишутся или прочитаются просто "кракозябры"
источник

V

Vitaly in Laravel для начинающих
Александр
Имеется в виду, скорее всего, кодировка соединения. Т.е. клиент указывает кодировку utf8, а в базах, таблицах, столбцах - кодировка cp1251 и база видит что они разные и отдаёт клиенту всё в utf8
Вы видели текст 1251 в utf8 ?
источник

EG

Egor Gruzdev in Laravel для начинающих
Vitaly
да понятно , что там кодировка указана .. но не может она следить за тем что я туда пихаю, если это не выходит за рамки допустимого .. как например с эмодзи .. а с 1251 и utf все просто таблицы просто не совпадают , но не выходят за границы .. поэтому запишутся или прочитаются просто "кракозябры"
она знает что ты пихаешь utf-8, т.к. ты указал это при соединение
источник

А

Александр in Laravel для начинающих
Vitaly
да понятно , что там кодировка указана .. но не может она следить за тем что я туда пихаю, если это не выходит за рамки допустимого .. как например с эмодзи .. а с 1251 и utf все просто таблицы просто не совпадают , но не выходят за границы .. поэтому запишутся или прочитаются просто "кракозябры"
Некорректные символы можно же просто игнорировать
источник

EG

Egor Gruzdev in Laravel для начинающих
Vitaly
да понятно , что там кодировка указана .. но не может она следить за тем что я туда пихаю, если это не выходит за рамки допустимого .. как например с эмодзи .. а с 1251 и utf все просто таблицы просто не совпадают , но не выходят за границы .. поэтому запишутся или прочитаются просто "кракозябры"
а по поводу не входит в диапазон, это не проблема базы данных, не надо пихать то что не можешь переварить
источник

V

Vitaly in Laravel для начинающих
Александр
Некорректные символы можно же просто игнорировать
кого игнорировать? Ваш текст из БД в 1251 при отображении и будет этими некорректными символами .. да банально в браузере переключите кодировку на русском сайте с Utf8 на 1251 .. и получите тот самый мусор
источник

V

Vitaly in Laravel для начинающих
я Вам про одно Вы мне про другое
источник

V

Vitaly in Laravel для начинающих
указание кодировки при коннекте в БД и используется в нестандартных случаях, когда данные в БД хранятся по особенному , по дефолту стандарт UTF8 и её можно не указывать
источник

V

Vitaly in Laravel для начинающих
если Вы в БД намешали таблиц в разных кодировках , то Вам за бардаком и следить
источник

EG

Egor Gruzdev in Laravel для начинающих
Vitaly
указание кодировки при коннекте в БД и используется в нестандартных случаях, когда данные в БД хранятся по особенному , по дефолту стандарт UTF8 и её можно не указывать
ты видел сколько в MySql вариаций utf-8 кодировок?
источник

V

Vitaly in Laravel для начинающих
Egor Gruzdev
в базе информация о кодировках расставлена по таблицам, строкам и т.д., она сама за всем следит
в Вашем проекте скорее всего старые данные пишутся со своего коннекта .. а Ваши новые таблицы пишутся с помощью нового
источник

EG

Egor Gruzdev in Laravel для начинающих
Если нет старого кода (инфраструктуры и т.д.) которому нужен cp1251, то конвертирую всю базу в utf-8
источник

EG

Egor Gruzdev in Laravel для начинающих
Vitaly
в Вашем проекте скорее всего старые данные пишутся со своего коннекта .. а Ваши новые таблицы пишутся с помощью нового
нет все работает через одно соединение
источник