使用 XMLHttpRequest 覆盖 XML 文档中不正确声明的文本编码

Override incorrect declared text encoding in XML document using XMLHttpRequest

我们的应用是 。尽管 post 中的解决方法有效(插入 nginx 代理),但我们希望找到一个客户端解决方案,如果有的话。

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

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

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

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

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

这是一个 online test