IE浏览器中的overrideMimeType替代方案是什么?

3

这是一个没有正确答案的问题,我已经搜索了许多次互联网,但是找不到解决方案。

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

我认为这个不再起作用了...希望我是错的! - Brian McGinity
2个回答

1

你不需要像overrideMimeType这样的花哨东西。只需确保您的主页面和AJAX加载的页面的编码正确(最好都是UTF-8)。很可能,您忘记了声明编码的meta标签


使用HTTP标头,它们比元标记具有更高的优先级,并且如果浏览器意识到正在使用错误的编码,则不会重新启动解析。 - Quentin
您是在问我是否需要在我的主页面和 Ajax 加载的页面上都设置 <head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /></head> 吗?如果是,请问设置之后,我的主页面也会出现相同的问题,而且 Ajax 结果仍然是一样的。请指教。 - john
抱歉,虽然这解决了问题,但我的字符集需要是 ISO-8859-1。非常感谢。 - john

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接