0

我正在尝试使用文件系统访问 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 编码的文件完美搭配。

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

感谢帮助

4

1 回答 1

1

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

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

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

于 2021-04-13T11:02:55.393 回答