Изменить кодировку сообщений об ошибках HTML

я поддерживать устаревший проект PHP который использует ISO-8859-15. Когда я получаю какую-либо ошибку PHP, сообщение об ошибке вообще не отображается, если оно содержит один не-ASCII-символ (скорее всего потому, что современный PHP везде использует UTF-8). Это происходит в большинстве пользовательских исключений, потому что сообщения об ошибках на испанском языке:

Фатальная ошибка? Который из?

Есть ли директива PHP, которая контролирует это?


Пока что я отключаю ошибки HTML как обходной путь. Мне не нужно никакого преобразования, потому что все правильно настроено на использование ISO-8859-15 (файлы, база данных, HTTP-заголовки …). Я бы сказал, что это разобрался в PHP / 5.6 но я все еще на 5,5.

0

Решение

Вопреки моему первоначальному мнению, встроенный обработчик ошибок, похоже, не использует default_charset директива введен в PHP / 5.6.0 при составлении сообщений об ошибках HTML, и при этом он не использует input_encoding или же output_encoding, Таким образом, мы в основном имеем две альтернативы:

  1. Используйте набор пользовательский обработчик ошибок а также пользовательский обработчик исключений (далеко не тривиально, если вы не хотите получить что-то хуже оригинала).

  2. Отключить ошибки HTML:

    if( version_compare(PHP_VERSION, '5.4.0', '>=') ){
    ini_set('html_errors', false);
    }
    
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]