Як змінити кодування звіту про помилку в php stack overflow російською

Висновок помилки MySQL буде залежати від самої збірки, LANG на сервері (+ ще кілька всякої фігні) і того, як відображає у тебе text WEB-сервер

Я б порадив почати налагодження з установки в .htaccess параметра

У 90% випадків на цьому все і закінчується

Якщо не допоможе, йди по кроках:

  1. На який ОС все це працює і яка кодування в цій ОС за замовчуванням
  2. У якому кодуванні живе сервер SQL
  3. У якому кодуванні живе WEB-сервер

Тільки копіюй прям відразу де побачив, а не з поста вище, наприклад. Символ. - цілком собі друкований символ UTF-8, кодувати його кудись ще не вийде) Так трапляється після вставки кракозябри кудись, де контент в UTF-8. вони просто перетворюються в звичайні UTF-8 символи.

UPD. Я провів експеримент:

Записав її в файл в кодуванні UTF-8:

$ Env | grep LANG LANG = ru_RU.UTF-8

Отриманий файл перегнав з UTF-8 в CP-1251 (вона ж windows-1251)

$ Iconv -f utf-8 -t windows-1251 ./q686819.txt

Консоль у мене відображає висновок в UTF-8, але виведені символи мають кодування CP-1251

Звідси можна зробити наступний корисний для вас висновок: вихідний текст ваша збірка MySQL виводить в кодуванні windows-1251 (швидше за все тому що зібрана під Windows, а там в російській локалізації за замовчуванням саме windows-1251). А вопросики ви бачите тому, що дивіться на символи через призму кодування utf-8

Рішення: або поміняти збірку MySQL на EN, без локалізації російською (можливо там в параметрах можна поміняти LANG для помилок або щось на зразок того - зазвичай такі пакети роблять мультимовними, а мова вибирається з параметрів ОС), або нічого не змінювати і виводити в windows-1251 (як зараз), але дивитися на це через призму того ж кодування windows-1251, наприклад в .htaccess

Спробуйте, тут потрібні експерименти саме з вашої складанням і на Windows. На жаль докладніше я вам не підкажу - користуюся Linux і звичайними Apache httpd і mariadb з репозиторіїв. Але напрямок безумовно вірне

Схожі статті