javascript, come possiamo leggere un file di testo locale con lettere accento?

Ho un dubbio perché ho bisogno di leggere un file locale e ho studiato alcuni thread, e ho visto vari modi per gestirlo, nella maggior parte dei casi c’è un file di input.

Avrei bisogno di caricarlo direttamente attraverso il codice.

Ho studiato questo thread:

Come leggere un file di testo locale?

E potrei leggerlo.

La parte sorprendente è stata quando ho provato a dividere le linee e le parole, ha mostrato: sostituire le lettere di accento.

Il codice che ho adesso è:

myFileReader.js

function readTextFile(file) { var rawFile = new XMLHttpRequest(); rawFile.open("GET", file, false); rawFile.onreadystatechange = function () { if (rawFile.readyState === 4) { if (rawFile.status === 200 || rawFile.status == 0) { allText = rawFile.responseText; console.log('The complete text is', allText); let lineArr = intoLines(allText); let firstLineWords = intoWords(lineArr[0]); let secondLineWords = intoWords(lineArr[1]); console.log('Our first line is: ', lineArr[0]); let atlas = {}; for (let i = 0; i < firstLineWords.length; i++) { console.log(`Our ${i} word in the first line is : ${firstLineWords[i]}`); console.log(`Our ${i} word in the SECOND line is : ${secondLineWords[i]}`); atlas[firstLineWords[i]] = secondLineWords[i]; } console.log('The atlas is: ', atlas); let atlasJson = JSON.stringify(atlas); console.log('Atlas as json is: ', atlasJson); download(atlasJson, 'atlasJson.txt', 'text/plain'); } } }; rawFile.send(null); } function download(text, name, type) { var a = document.getElementById("a"); var file = new Blob([text], {type: type}); a.href = URL.createObjectURL(file); a.download = name; } function intoLines(text) { // splitting all text data into array "\n" is splitting data from each new line //and saving each new line as each element* var lineArr = text.split('\n'); //just to check if it works output lineArr[index] as below return lineArr; } function intoWords(lines) { var wordsArr = lines.split('" "'); return wordsArr; } 

Il dubbio è: come potremmo gestire quei caratteri speciali che sono le vocali con accento?

Lo chiedo, perché anche nell’IDE i marchi di interrogazione sono apparsi se caricassimo il testo in UTF-8, quindi ho cambiato ISO-8859-1 e l’ho caricato bene.

Inoltre ho studiato:

Leggi i caratteri speciali UTF-8 da file esterni usando Javascript

Converti caratteri speciali in HTML in Javascript

Leggendo un file di testo locale da un file javascript locale?

Inoltre, potresti spiegare se esiste un modo più breve per caricare i file nel client javascript. Ad esempio in Java c’è FileReader / FileWriter / BufferedWriter. C’è qualcosa in Javascript in qualcosa di simile?

Grazie per il tuo aiuto!

Sembra che il file sia codificato con ISO-8859-1 (o forse il molto simile Windows-1252).

Non esiste una distinta base o equivalente per tali codifiche.

Le uniche soluzioni che riesco a vedere sono:

  1. Utilizzare un server (locale) e restituire l’intestazione Content-Type HTTP con la codifica identificata come un set di caratteri, ad esempio Content-Type: text/plain; encoding=ISO-8859-1 Content-Type: text/plain; encoding=ISO-8859-1

  2. Usa invece UTF-8 (ad esempio, apri il file in un editor come ISO-8859-1, quindi salvalo come UTF-8), poiché questa è la codifica predefinita per i corpi di risposta XHR.