я поддерживать устаревший проект PHP который использует ISO-8859-15. Когда я получаю какую-либо ошибку PHP, сообщение об ошибке вообще не отображается, если оно содержит один не-ASCII-символ (скорее всего потому, что современный PHP везде использует UTF-8). Это происходит в большинстве пользовательских исключений, потому что сообщения об ошибках на испанском языке:
Есть ли директива PHP, которая контролирует это?
Пока что я отключаю ошибки HTML как обходной путь. Мне не нужно никакого преобразования, потому что все правильно настроено на использование ISO-8859-15 (файлы, база данных, HTTP-заголовки …). Я бы сказал, что это разобрался в PHP / 5.6 но я все еще на 5,5.
Вопреки моему первоначальному мнению, встроенный обработчик ошибок, похоже, не использует default_charset
директива введен в PHP / 5.6.0 при составлении сообщений об ошибках HTML, и при этом он не использует input_encoding
или же output_encoding
, Таким образом, мы в основном имеем две альтернативы:
Используйте набор пользовательский обработчик ошибок а также пользовательский обработчик исключений (далеко не тривиально, если вы не хотите получить что-то хуже оригинала).
Отключить ошибки HTML:
if( version_compare(PHP_VERSION, '5.4.0', '>=') ){
ini_set('html_errors', false);
}
Других решений пока нет …