PHP文本/纯结果+字符集


PHP text/plain result + Character set

我已经实现了一个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_encode(),它也做同样的事情。)

在你的PHP脚本中试试这个:

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