Чтение файлов ANSI в API доступа к веб-файловой системе

Я пытаюсь получить файлы с помощью 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

Спасибо за помощь

1 ответ

Вам нужно использовать API с правильной кодировкой. Подробности см. В документации MDN . Например, вы можете прочитать данные, как показано ниже:

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

Единственное, на что следует обратить внимание, это то, что вам нужно знать кодировку заранее. Если вы не укажете кодировку, предполагается UTF-8.

Другие вопросы по тегам