2016-05-31 5 views
0

Ich habe eine Textdatei mit Akzentbuchstaben wie é. Ich habe File Encoding Checker verwendet, es scheint, dass die Datei als Windows-1252 codiert ist. las ich die Datei mit folgendem JS und node.js Code:JS und Text Codierung

fs.readFile('frenchVerbsList.txt','utf-8', function(err, data) { 
    if (err) { 
     return console.log("ERROR here!: " + err); 
    } 
    frenchWords = data.split('\r\n'); 
    console.log(frenchWords); 
}); 

Die Ausgabe von der console.log Rechnung zeigt ein Fragezeichen anstatt die Zeichen mit Akzent. Was ist passiert?

+1

Die Datei wahrscheinlich UTF-8 codiert wird nicht geprüft. – robertklep

+0

Können Sie die Datei bereitstellen? –

Antwort

1

Node unterstützt nur einige encodings und windows-1252 ist nicht Teil davon. Sie müssen die Codierung beispielsweise mit encoding in beispielsweise utf-8 konvertieren.

Ähnlich wie diese, haben aber nicht

var encoding = require("encoding"); 

fs.readFile('frenchVerbsList.txt', function(err, text) { 
    if (err) return console.log("ERROR here!: " + err); 

    var resultBuffer = encoding.convert(text, 'utf8', 'windows1252'); 
    frenchWords = resultBuffer.toString().split('\r\n'); 

    console.log(frenchWords); 
}) 
+0

Es sieht sicherlich gut aus, und ich habe das "Encoding" -Modul ordnungsgemäß in das Verzeichnis dieses Projekts installiert. Es hat jedoch die Ausgabe nicht geändert. Dann habe ich Notepad ++ verwendet, um die französische Datei nach utf-8 zu konvertieren, was zu einer korrekten Ausgabe führte. Danke für die Info zum Modul "Encoding", aber es hat mich in die richtige Richtung geführt :-) – Gerard