【发布时间】:2019-11-20 21:32:32
【问题描述】:
我有一个使用 UTF-16 编码的文件,并且编码的字符串包含 à 和 ÷ 等字符。我用来读取文件的代码是:
var reader = new FileReader();
reader.readAsArrayBuffer(real_file_button.files[0]);
reader.onloadend = function (evt) {
if (evt.target.readyState == FileReader.DONE) {
var arrayBuffer = evt.target.result,
array = new Uint8Array(arrayBuffer);
for (var i = 0; i < array.length; i++) {
fileByteArray.push(array[i]);
}
}
}
但由于它是以 UTF-8 格式读取的,à 和 ÷ 字符将转换为 �。如何在保持正确编码的同时获取文件的字节数组?
【问题讨论】:
-
"但因为它是以 UTF-8 格式读取的" - 嗯,不是吗?它将文件读入字节的原始缓冲区,您显示的代码中没有字符串,也没有编码。你究竟在哪里输出任何字符?
-
顺便说一句,
fileByteArray是什么,复制你已经拥有的array有什么意义?
标签: javascript utf-16