Ich habe aktuellen Code und das Problem ist das Erstellen einer 1252-Codepage-Datei. Ich möchte sie zwingen, eine UTF-8-Datei zu erstellen
Kann mir jemand bei diesem Code helfen, da ich sage, dass er derzeit funktioniert ... aber ich muss das Speichern von utf erzwingen ... kann ich einen Parameter oder etwas übergeben?
Das ist, was ich habe, jede Hilfe wirklich geschätzt
var out = new java.io.FileWriter( new java.io.File( path )),
text = new java.lang.String( src || "" );
out.write( text, 0, text.length() );
out.flush();
out.close();
Antworten:
Anstatt zu verwenden
FileWriter
, erstellen Sie eineFileOutputStream
. Sie können dies dann in eine einbindenOutputStreamWriter
, wodurch Sie eine Codierung im Konstruktor übergeben können. Dann können Sie Ihre Daten in eine Try-with-Resources-Anweisung schreiben :quelle
Versuche dies
quelle
Writer out = ...
sollte korrigiert werden aufBufferedWriter out = ...
.Versuchen Sie es mit
FileUtils.write
Apache Commons.Sie sollten in der Lage sein, etwas zu tun wie:
Dadurch wird die Datei erstellt, wenn sie nicht vorhanden ist.
quelle
Alle hier gegebenen Antworten funktionieren nicht, da das Schreiben von Java UTF-8 fehlerhaft ist.
http://tripoverit.blogspot.com/2007/04/javas-utf-8-and-unicode-writing-is.html
quelle
Seit Java 7 können Sie dasselbe mit
Files.newBufferedWriter
etwas prägnanterem tun :quelle
quelle
Der Dienstprogrammtyp Java 7-Dateien ist nützlich für die Arbeit mit Dateien:
In der Java 8-Version können Sie das Charset- Argument weglassen - die Standardmethode für UTF-8.
quelle
Wir können die UTF-8-codierte Datei mit Java schreiben, indem wir PrintWriter verwenden, um UTF-8-codierte XML zu schreiben
Oder klicken Sie hier
quelle
Der folgende Beispielcode kann Dateien zeilenweise lesen und neue Dateien im UTF-8-Format schreiben. Außerdem spezifiziere ich explizit die Cp1252-Codierung.
quelle