这是一个从来没有一个正确答案的问题,我已经在网上搜索了很多次,却找不到解决方案。
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这样返回char,它将显示为奇怪的符号。
我尝试了许多方法,例如编码和解码,在响应文件中设置标头都无效。我没主意了。请帮助某人。
**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");
您不需要花哨的东西,例如overrideMimeType。只要确保您的主页和AJAX加载页面的编码正确(最好是两者都使用UTF-8)即可。您最有可能忘记了声明编码的meta标签。