Ich habe diesen Code:Java UTF-8-Codierung
BufferedWriter w = Files.newWriter(file, Charsets.UTF_8);
w.newLine();
StringBuilder sb = new StringBuilder();
sb.append("\"").append("éééé").append("\";")
w.write(sb.toString());
Aber es funktioniert nicht. Am Ende hat meine Datei keine UTF-8-Codierung. Ich habe versucht, dies zu tun, wenn das Schreiben:
w.write(new String(sb.toString().getBytes(Charsets.US_ASCII), "UTF8"));
Es machte Fragezeichen überall in der Datei erscheinen ...
Ich fand, dass es ein Fehler in Bezug auf der Anerkennung des ursprünglichen BOM charcater (http://bugs.java.com/view_bug.do?bug_id=4508058) war, so Ich habe versucht, die BOMInputStream-Klasse zu verwenden. Aber gibt immer false zurück, also denke ich, dass mein Problem nicht BOM verwandt ist vielleicht?
Wissen Sie, wie ich meine Datei in UTF-8 kodieren kann? Wurde das Problem in Java 8 gelöst?
Ich finde es schwierig zu verstehen, was Ihr tatsächliches Problem ist. Bitte zeigen Sie den echten Code, die Eingabe und die Ausgabe. UTF-8 funktioniert gut in Java, und 'sb.toString(). GetBytes (Charsets.US_ASCII)' erzeugt natürlich viele Fragezeichen, da US_ASCII nur Zeichen 0 .. 127 unterstützt, alles andere ist ungültig und wird durch ersetzt ein Fragezeichen. Auch die Verwendung von Stücklisten mit UTF-8 wird nicht empfohlen. –
Sicher funktioniert es. Wenn Ihr 'BufferedWriter' erstellt wurde, können Sie einfach' w.write ("Hallo, äöå"); w.close(); 'und ich garantiere, dass die Datei UTF-8 kodiert sein wird. – Kayaman
"Es wurden überall in der Datei Fragezeichen angezeigt ..." - das Problem liegt also tatsächlich darin, wo Sie die Datei anzeigen. – Gimby