更改HTML错误消息的编码

时间:2014-11-03 11:56:47

标签: php php-5.5

维护使用ISO-8859-15的遗留PHP项​​目。当我收到任何类型的PHP错误时,只要包含单个非ASCII字符,就不会显示错误消息(很可能是因为现代PHP假定UTF-8无处不在)。这种情况发生在大多数自定义异常中,因为错误消息是西班牙语:

Fatal Error? Which one?

是否有一个控制它的PHP指令?


到目前为止,我正在禁用HTML错误作为解决方法。我不需要任何类型的转换,因为一切都已正确配置为使用ISO-8859-15(文件,数据库,HTTP标头...)。我会说这是sorted out in PHP/5.6,但我仍然是5.5。

1 个答案:

答案 0 :(得分:0)

与我最初的相信相反,在编写HTML错误消息时,内置错误处理程序似乎不使用PHP / 5.6.0中引入的default_charset directive,它也不使用output_encoding或{{1 }}。所以我们基本上有两种选择:

  1. 使用一组custom error handlercustom exception handler(如果您不希望最终使用比原版更糟糕的内容,则远非琐碎)。

  2. 禁用HTML错误:

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