Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/230.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 更改HTML错误消息的编码_Php_Php 5.5 - Fatal编程技术网

Php 更改HTML错误消息的编码

Php 更改HTML错误消息的编码,php,php-5.5,Php,Php 5.5,我维护一个使用ISO-8859-15的遗留PHP项目。当我遇到任何类型的PHP错误时,只要错误消息包含一个非ASCII字符,就根本不会显示错误消息,这很可能是因为现代PHP到处都假设UTF-8。这在大多数自定义异常中都会发生,因为错误消息是西班牙语的: 是否有一个PHP指令来控制这一点 到目前为止,我正在禁用HTML错误作为解决方法。我不需要任何类型的转换,因为所有内容都正确配置为使用ISO-8859-15文件、数据库、HTTP头。。。。我想说这是,但我仍然是5.5。与我最初的想法相反,内置错误

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

是否有一个PHP指令来控制这一点


到目前为止,我正在禁用HTML错误作为解决方法。我不需要任何类型的转换,因为所有内容都正确配置为使用ISO-8859-15文件、数据库、HTTP头。。。。我想说这是,但我仍然是5.5。

与我最初的想法相反,内置错误处理程序在编写HTML错误消息时似乎没有使用PHP/5.6.0中引入的,也没有使用输入编码或输出编码。因此,我们基本上只有两种选择:

如果你不想最终得到比原来更糟糕的东西,那么就使用一套简单的方法

禁用HTML错误:

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

理想情况下,在任何项目上都应该注册自定义错误和异常处理程序。您不应该依赖内置的错误处理系统。纠正错误处理的不足,解决编码问题@NiettheDarkAbsol老实说,在Xdebug开发中记录或显示未捕获的异常和错误满足了当前的需求:尽管是遗留代码,但它们实际上很少。如果您在PHP5.5中,为什么要使用ISO-8859-15?UTF-8将解决您的所有问题。关于具体问题:也许浏览器没有识别出该编码中的页面?您是否发送了正确的标题???@BorislavSabev-1,因为它不是设计阶段的传入项目:它是一个已经存在的产品。拆除一座建筑物并不是为了修复一扇破碎的窗户。2当前的编码处理很好。相信我。