我维护使用ISO-8859-15的遗留PHP项目。当我收到任何类型的PHP错误时,只要包含单个非ASCII字符,就不会显示错误消息(很可能是因为现代PHP假定UTF-8无处不在)。这种情况发生在大多数自定义异常中,因为错误消息是西班牙语:
是否有一个控制它的PHP指令?
到目前为止,我正在禁用HTML错误作为解决方法。我不需要任何类型的转换,因为一切都已正确配置为使用ISO-8859-15(文件,数据库,HTTP标头...)。我会说这是sorted out in PHP/5.6,但我仍然是5.5。
答案 0 :(得分:0)
与我最初的相信相反,在编写HTML错误消息时,内置错误处理程序似乎不使用PHP / 5.6.0中引入的default_charset
directive,它也不使用output_encoding
或{{1 }}。所以我们基本上有两种选择:
使用一组custom error handler和custom exception handler(如果您不希望最终使用比原版更糟糕的内容,则远非琐碎)。
禁用HTML错误:
if( version_compare(PHP_VERSION, '5.4.0', '>=') ){
ini_set('html_errors', false);
}