您不能直接在 JavaScript 中将 Shift_JIS 文件读入字符串对象。您必须先将文件内容存储到二进制对象中,然后使用TextDecoder
.
不幸的是,jQuery$.ajax()
无法将响应主体处理为dataType: 'binary'
开箱即用的二进制 ( )。所以你必须使用像
jQuery BinaryTransport这样的附加模块,或者像这样使用 XMLHttpRequest:
// ref. https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/Sending_and_Receiving_Binary_Data
var oReq = new XMLHttpRequest();
oReq.open("GET", "demo.txt", true);
oReq.responseType = "arraybuffer"; // handle response body as binary
oReq.onload = function (oEvent) {
if (oReq.response) {
var sjisDecoder = new TextDecoder('shift-jis');
alert(sjisDecoder.decode(oReq.response)) // Note: not oReq.responseText
}
};
oReq.send(null);