Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/232.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文本/普通结果+;字符集_Php_Character Encoding - Fatal编程技术网

PHP文本/普通结果+;字符集

PHP文本/普通结果+;字符集,php,character-encoding,Php,Character Encoding,我已经实现了一个PHP脚本,它将生成一个字符串。 我已将内容类型指定为text/plain 我通过AJAX请求调用我的PHP脚本。 我使用jQuery函数来执行AJAX请求。 然后检索结果字符串并将其插入DOM。 我调用的HTML页面的内容类型是iso-8859-1 但结果字符串未正确显示在我的调用HTML页面中。 带有尖锐重音的字母e将替换为特殊字符 有人知道隐式使用哪个字符集对PHP脚本生成的字符串进行编码吗? 如果使用的字符集不同于iso-8859-1,那么如何使用iso-8859-1字符

我已经实现了一个PHP脚本,它将生成一个字符串。
我已将内容类型指定为text/plain

我通过AJAX请求调用我的PHP脚本。
我使用jQuery函数来执行AJAX请求。
然后检索结果字符串并将其插入DOM。
我调用的HTML页面的内容类型是iso-8859-1

但结果字符串未正确显示在我的调用HTML页面中。
带有尖锐重音的字母e将替换为特殊字符

有人知道隐式使用哪个字符集对PHP脚本生成的字符串进行编码吗?

如果使用的字符集不同于iso-8859-1,那么如何使用iso-8859-1字符集重新编码结果字符串?

默认情况下,Ajax请求为UTF-8

您的Ajax资源应该发出UTF-8数据。浏览器应自动将结果转换为页面的本地字符集,如ISO-8859-1

如果您的Ajax资源正在输出ISO-8859-1数据,请使用

$data = iconv($data, "ISO-8859-1", "UTF-8"); 

在其上强制使用UTF-8。(或者,使用与之相同的
utf8\u encode()

在PHP脚本中尝试以下操作:

echo htmlentities($str, ENT_QUOTES, "ISO-8859-1");

您确定浏览器会自动从UTF-8(Ajax结果)转换为ISO-8859-1(HTML页面)吗?最近我把我所有的HTML页面都改为UTF-8格式,因为浏览器没有这样做,我想避免这样的编码问题(现在都是UTF-8)。@Martin AFAIK如果页面的编码定义明确,它应该会自动转换,但我现在找不到定义这个的权威来源。