Почему PHP бросает ошибки в Windows-1251?

Windows 10/ Apache 2.4 / PHP 7.0.3

Везде, где только можно, стоит кодировка UTF-8: все файлы PHP в UTF8 без BOM, в php.ini прописано:

default_charset = "UTF-8"

internal_encoding = "UTF-8"

input_encoding = "UTF-8"

output_encoding = "UTF-8"


В .htaccess:

AddDefaultCharset utf-8

Заголовок с charset=utf-8 отправляется. Но PHP почему-то бросает все исключения и ошибки в Windows-1251, например:

Parse error: syntax error, unexpected '$front_controller' (T_VARIABLE) in D:\��� �������\domains\time.local\index.php on line 7


Если вручную поставить в браузере кодировку Кириллица (Windows), то текст нормально отображается.
Как сделать, чтобы PHP бросал все исключения и ошибки в UTF-8?
  • Вопрос задан
  • 215 просмотров
Решения вопроса 1
delphinpro
@delphinpro Куратор тега PHP
frontend developer
Имена файлов в windows пишутся в кодировке 1251.
Вообще странная идея - размещать проект в папке с НЕлатинскими символами...
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
gromdron
@gromdron
Работаю с Bitrix24
Если вручную поставить в браузере кодировку Кириллица (Windows), то текст нормально отображается.

Именно. PHP и возвращяет вам ответ в UTF-8, однако ваш браузер читает и пытается отобразить его как windows-1251.

А что касается кириллицы, то D:\��� �������\ - вы запускаете тестовый сервер на windows ? Для теста вы и так знаете где он лежит, а вот для production все-таки стоит перейти на linux и избавиться от кириллицы.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы