读取Web文件系统中的ANSI文件-访问API



我正在尝试使用file-system-access API获取文件,使用以下代码效果很好:

function Process_Files(files) {
[].map.call(files, async function (file, i) {
if (isDataFile(file.name)) {
let fileText = await file.text();
let filePath = await file.webkitRelativePath;
ProcessFileContents(await fileText,await filePath);
}
})
}
function DirectoryChose(event) {
let files;
event.stopPropagation();
event.preventDefault();

if (event.type === "change") {
files = event.target.files;
}
if (files) {
Process_Files(files)
}
}
dropArea.addEventListener("change", DirectoryChose);

问题是,当我们有一个ANSI编码的文件时,像Ö、Ü和É这样的德语字符就会变成�而它与UTF-8编码的文件完美配合。

我无论如何都找不到在ANSI代码中使用file.text()读取文件

感谢的帮助

您需要使用具有正确编码的FileReader()API。有关详细信息,请参阅MDN文档。例如,您可以读取以下数据:

// fileOrBlob is a File or a Blob :-) 
const fileReader = new FileReader();
fileReader.readAsText(fileOrBlob, 'windows-1252');

唯一需要注意的是,您需要事先了解编码。如果未指定编码,则假定为UTF-8。

最新更新