2016-04-07 21 views
2

Ich erzeuge eine utf-8 codierte CSV mit node.js und dann öffne ich es auf Windows mit einem Doppelklick. Excel startet, aber einige Sonderzeichen (wie Ä, Ö, Ü, ä, ö, ü ...) werden nicht richtig angezeigt. Ich denke, das liegt an der falschen Kodierung. Ich habe einen neuen csv gespeichert, der mit Excel erstellt wurde. Und ich sehe die Kodierung ist Windows-1252.Konvertieren UTF-8 CSV-Datei in Excel lesbar csv

Ich googelte viel und probierte viel, aber keine Lösung.

versuche ich Kombinationen von https://github.com/mathiasbynens/windows-1252 und https://github.com/kvz/phpjs/tree/master/functions/xml

data = helper.utf8_encode(data); 
data = helper.utf8_decode(data); 
data = windows1252.encode(data); 
data = windows1252.decode(data); 
data = helper.utf8_encode(windows1252.encode(data)); 
data = helper.utf8_encode(windows1252.decode(data)); 
data = helper.utf8_decode(windows1252.encode(data)); 
data = helper.utf8_decode(windows1252.decode(data)); 
data = windows1252.encode(helper.utf8_encode(data)); 
data = windows1252.decode(helper.utf8_encode(data)); 
data = windows1252.encode(helper.utf8_decode(data)); 
data = windows1252.decode(helper.utf8_decode(data)); 

Aber nichts funktioniert mit. Bitte helft mir

UPDATE: Durch Basteln habe ich herausgefunden, dass diese Codes als die gewünschten Zeichen angezeigt werden, aber immer noch kleinere ääü fehlen. Jemand eine Idee?

\u0101 => Ä 
\u010D => Ä 
\u011D => Ä 
\u0120 => Ä 

\u0581 => Ö 
\u058D => Ö 
\u058F => Ö 
\u0590 => Ö 
\u059D => Ö 
\u05A0 => Ö 

\u0701 => Ü 
\u070D => Ü 
\u070F => Ü 
\u0710 => Ü 
\u071D => Ü 
\u0720 => Ü 

\u07C1 => ß 
\u07CD => ß 
\u07D0 => ß 
\u07DD => ß 
\u07E0 => ß 
+0

Sie benötigen einen UTF-8 BOM zur CSV hinzufügen für Excel, sie zu erkennen als UTF-8. Siehe http://StackOverflow.com/Questions/17879198/Adding-utf-8-bom-to-string-blob –

+0

Funktioniert nicht, Ü werden als à – Denni007

Antwort

0

Ich bin nicht ganz zufrieden mit dieser Antwort, weil ich eine Warnung mit dem npm install iconv Befehl erhalten. Dennoch sollte es Ihr Problem lösen:

const Iconv = require('iconv').Iconv; 
const fs = require('fs'); 
const iconv = new Iconv('utf8', 'utf16le'); 

let csvContent = 'ÉëÜè whatever you want'; 
fs.writeFileSync('test.csv', iconv.convert(csvContent)); 
+0

gefunden Problem meiner Warnung angezeigt: https://github.com/nodejs/node-gyp/issues/942 Ich bin jetzt zufrieden ☺️ – herve