Java liest Textdateien (z. B. CSV-Dateien, TXT-Dateien usw.) und wird bei Chinesisch verstümmelt. Der Lesecode lautet 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();
Die Verarbeitung der E/A-Klasse von Java ist wie folgt:
Die Reader-Klasse ist die übergeordnete Klasse zum Lesen von Zeichen in Java Die I/O-Klasse und die InputStream-Klasse sind die übergeordnete Klasse zum Lesen von Bytes. Sie ist für die Verarbeitung der gelesenen Bytes in Zeichen während des I/O-Prozesses verantwortlich Dekodierung bestimmter Bytes in Zeichen Es wird von StreamDecoder implementiert und das Zeichensatz-Kodierungsformat muss vom Benutzer während des Dekodierungsprozesses von StreamDecoder angegeben werden. 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 einen 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();
Für weitere Java-Kenntnisse beachten Sie bitte die Spalte Java Basic Tutorial.
Das obige ist der detaillierte Inhalt vonLösung für Java, das verstümmelte chinesische Zeichen liest. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!