这是一个永远没有正确答案的问题,我已多次搜索网络,但我无法找到解决方案。
xhr.open("GET", fullurl, true);
if(xhr.overrideMimeType) xhr.overrideMimeType("text/html; charset=ISO-8859-1");
xhr.send(null);
xhr.onreadystatechange = function(){
if(xhr.readyState == 4){
if(xhr.status == 200)
alert(xhr.responseText);
适用于firefox,chrome。我的responseText将返回像Réunion这样的字符,它将显示为奇怪的符号。
我尝试了很多方法,比如编码和解码,在响应文件中设置标头不起作用。我没有想法。请帮助别人。
**SOLUTION**
在主文件中,请确保设置内容类型和字符集。
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
在加载AJAX的页面中,请确保将其放在顶部。
header('Content-Type: text/html; charset=iso-8859-1');
问题解决了,你的快乐男人。这不再需要了。
if(xhr.overrideMimeType) xhr.overrideMimeType("text/html; charset=ISO-8859-1");
答案 0 :(得分:1)
你不需要像overrideMimeType那样的任何东西。只需确保主和AJAX加载页面的编码是正确的(两者最好是UTF-8)。最有可能的是,您忘记了meta tag声明编码。
答案 1 :(得分:0)
我无法使用元标记更改编码并访问服务器。在IE中,我访问responseBody以使用正确的字符创建responseText。 这是我的答案: