【问题标题】:Override incorrect declared text encoding in XML document using XMLHttpRequest使用 XMLHttpRequest 覆盖 XML 文档中不正确的声明文本编码
【发布时间】:2015-05-05 14:52:48
【问题描述】:

我们的应用是receiving data from a source with incorrect XML headers。尽管该帖子中的解决方法有效(插入 nginx 代理),但我们希望找到一个客户端解决方案,如果有的话。

那么,有没有办法截取 XML 文档并强制将文档解释为 Windows 1251 而不是 UTF-8? XMLHttpRequest 具有“overrideMimeType”属性,但没有“overrideEncoding”。

所有这些主要对 IE 来说很重要,如果它碰到一个不可能的字符,它就完全无法解析文档。 Chrome 和 Firefox 只显示问号字符,这很好。

【问题讨论】:

  • 听起来不错,为什么不把这个作为答案呢?

标签: internet-explorer character-encoding xmlhttprequest windows-1252


【解决方案1】:

如果您最初使用 xhr.responseType="arraybuffer" 读取文件,则使用您想要的 mime/charset 将其 blob,如下所示:

new Blob([ arraybuff ], {type: 'application/xml;charset=windows-1251'}) 

然后通过URL.createObjectURL(blob)为其创建一个blobURL,最后,xhr 那个,我认为它会起作用。

这是online test

【讨论】:

  • 哇,太好了。感谢您为此付出了如此多的努力!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-08-27
  • 1970-01-01
  • 2020-07-22
  • 2011-01-23
  • 2020-03-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多