IE的overrideMimeType替代方案

时间:2010-10-03 17:21:26

标签: php javascript ajax

这是一个永远没有正确答案的问题,我已多次搜索网络,但我无法找到解决方案。

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");

2 个答案:

答案 0 :(得分:1)

你不需要像overrideMimeType那样的任何东西。只需确保主和AJAX加载页面的编码是正确的(两者最好是UTF-8)。最有可能的是,您忘记了meta tag声明编码。

答案 1 :(得分:0)

我无法使用元标记更改编码并访问服务器。在IE中,我访问responseBody以使用正确的字符创建responseText。 这是我的答案:

https://stackoverflow.com/a/22030309/3353928