0

我們的應用程序是receiving data from a source with incorrect XML headers。雖然該文章中的解決方法可行(插入nginx代理),但我們希望找到客戶端解決方案(如果有的話)。使用XMLHttpRequest覆蓋XML文檔中不正確的聲明文本編碼

那麼,有沒有辦法攔截一個XML文檔並強制文檔被解釋爲Windows 1251而不是UTF-8? XMLHttpRequest有一個「overrideMimeType」屬性,但不是「overrideEncoding」。

所有這些都主要針對IE,如果遇到單個不可能的字符,它完全無法解析文檔。 Chrome和Firefox只顯示問號字符,這很好。

+0

聽起來不錯,爲什麼不把它作爲答案? –

回答

1

如果您最初閱讀xhr.responseType="arraybuffer"文件,然後用你想要的MIME /字符集團塊像這樣:

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

然後它通過URL.createObjectURL(blob)創建blobURL,最後XHR ,我認爲它會起作用。

這是online test

+0

哇,太好了。感謝您付出這麼多努力! –