opencsv CSVWriter mit utf-8 scheint nicht zu funktionieren für mehrere Sprachen
Habe ich eine sehr lästige encoding problem mit opencsv.
Wenn ich den export einer csv-Datei, habe ich Charakter-Typ als 'UTF-8'.
CSVWriter writer = new CSVWriter(new OutputStreamWriter("D:/test.csv", "UTF-8"));
aber wenn ich öffnen Sie die csv-Datei mit Microsoft Office Excel 2007, es stellt sich heraus, dass es 'UTF-8 BOM' Codierung?
Sobald ich speichern Sie die Datei in Notepad, und öffnen Sie ihn erneut, die Datei wird zurück zu UTF-8 und alle Buchstaben, die in es scheint fein.
Ich glaube, ich habe genug gesucht, aber ich habe nicht gefunden eine Lösung um zu verhindern, dass meine Datei sich in 'UTF-8 BOM'. irgendwelche Ideen, bitte?
- Java sollten Sie nicht fügen Sie eine Stückliste auf seine eigene, da gibt es auch keine
OutputStreamWriter
Konstruktor der Einnahme von zwei Saiten, ich denke, es fehlt etwas vom code. Könnte der Stückliste Teil der Daten, die Sie schreiben?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich nehme an, deine Datei hat eine "UTF-8 ohne BOM' Kodieren.
Sie besser füttern BOM Codierung, um die Datei, auch wenn es nicht notwendig ist, in den meisten Fällen aber nur eine offensichtliche Ausnahme ist, wenn Sie sich mit ms excel.
Jetzt Ihre Datei wird verstanden werden, die von excel als utf-8 csv.
UTF-8
undUTF-8 Signature
(die falsch benannt, manchmal auch alsUTF-8 BOM
) sind die gleichen Codierungen und Unterschrift wird nur verwendet, unterscheiden es von allen anderen Codierungen. Alle unicode-Anwendung verarbeiten soll UTF-8-Signatur (die drei-Byte-SequenzEF BB BF
) richtig.Warum ist Java spezifisch fügt diese Signatur, und wie zu stoppen, es zu tun, die ich nicht kenne.