Руки бы оторвать за такое.
Кто вообще придумал прописывать SET NAMES в init-connect?
Я знаю, был такой психоз среди быдлокодеров, когда их говноскрипты при переходе на MySQL 4.1 переставали работать из-за введения кодировки, потому что они не осилили функции вроде mysql_set_charset.
Но клиент должен сам решать, в какой кодировке он желает получать данные, навязывать это со стороны сервера глупо. Тем более, такое поведение ломает, к примеру, PDO, где кодировка прописывается в DSN и устанавливается при соединении до этапа init-connect. А также, вероятно, ломает и другие клиенты, которые полагаются на установку кодировки в рукопожатии, а не через SET NAMES.
И все версии PHP кроме 5.2 из этого набора при отсутствии указания кодировки устанавливают ту, которая в character-set-server прописана, только PHP 5.2 почему-то её игнорит, видимо, для неё этот костыль и актуален.
Но ведь при переносе сайта на нормальный хост юзер очень удивится, почему вдруг его сайт перестал работать. Потому я считаю, что этому костылю не место в конфигах OpenServer. Считаю, что опций character-set-server и collation-server достаточно, а init-connect можно в конфиге оставить, но обязательно закомментировать. Кому надо поддерживать жуткое легаси, которое совсем уж не может никак устанавливать кодировку, а только полагаться на серверную - те раскомментируют.
- Главная Список форумов Ошибки Open Server
- Поиск
-
- Текущее время: 21 апр 2025, 18:23
- Часовой пояс: UTC+03:00
Информация: Конференция переехала на GitHub. Старый форум доступен только для чтения.