Java liest Textdateien (z. B. CSV-Dateien, TXT-Dateien usw.) und wird bei Chinesisch verstümmelt. (Empfohlen: Java-Video-Tutorial)
Lesen Sie den Code wie folgt:
List<string> lines=new ArrayList<string>(); BufferedReader br = new BufferedReader(new FileReader(fileName)); String line = null; while ((line = br.readLine()) != null) { lines.add(line); } br.close();</string></string>
Prinzip:
Die E/A-Klassenverarbeitung von Java ist wie folgt Abbildung:
Die Reader-Klasse ist die übergeordnete Klasse zum Lesen von Zeichen in Java I/O, und die InputStream-Klasse ist die übergeordnete Klasse zum Lesen von Bytes. Die InputStreamReader-Klasse ist die Brücke, die Bytes mit Zeichen verknüpft ist für das Lesen von Zeichen in der E/A verantwortlich. Der O-Prozess übernimmt die Konvertierung gelesener Bytes in Zeichen, und die spezifische Decodierung von Bytes in Zeichen wird von StreamDecoder implementiert. Das Zeichensatz-Codierungsformat muss vom Benutzer während des Decodierungsprozesses angegeben werden StreamDecoder. Beachten Sie, dass der Standardzeichensatz in der lokalen Umgebung verwendet wird, wenn Sie keinen Zeichensatz angeben. In der chinesischen Umgebung wird beispielsweise die GBK-Codierung verwendet.
Zusammenfassung: Wenn Java den Datenstrom liest, müssen Sie die Codierungsmethode des Datenstroms angeben, andernfalls wird der Standardzeichensatz in der lokalen Umgebung verwendet.
Nach der obigen Analyse lautet der geänderte Code wie folgt:
List<string> lines=new ArrayList<string>(); BufferedReader br=new BufferedReader(new InputStreamReader(new FileInputStream(fileName),"UTF-8")); String line = null; while ((line = br.readLine()) != null) { lines.add(line); } br.close();</string></string>
Für weitere Java-Kenntnisse beachten Sie bitte die Spalte Java Basic Tutorial.
Das obige ist der detaillierte Inhalt vonEinführung in die Lösung für verstümmelte chinesische Zeichen beim Lesen von Dateien in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!