【问题标题】:overrideMimeType alternative for IEIE 的 overrideMimeType 替代方案
【发布时间】:2014-02-26 10:33:07
【问题描述】:

这是一个永远没有正确答案的问题,我在网上搜索了很多次,但我找不到解决方案。

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

【问题讨论】:

  • 我认为这不再有效......希望我错了!

标签: php javascript ajax


【解决方案1】:

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

【讨论】:

  • 使用 HTTP 标头,它们的优先级高于 meta equivs,如果浏览器意识到它使用了错误的编码,则不要重新开始解析。
  • 你要我设置 在我的主页面和 ajax 加载页面?如果是,设置后,我的主页也有同样的问题,ajax结果还是一样。请指教
  • 很抱歉,这解决了问题,但我需要的字符集是 iso-8859-1。非常感谢你
【解决方案2】:

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

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

【讨论】:

    猜你喜欢
    • 2013-08-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多