2012-04-02 10 views
0

Ich habe den folgenden Code lesen eine Datei mit Unicode-Text (Japanisch).Unicode-Text in Java lesen und auf JLabel anzeigen?

File f = new File("f.txt"); // the file was saved with utf-8 encoding 
FileReader fr = new FileReader(f); 
BufferedReader br = new BufferedReader(fr); 

s = br.readLine(); 
lblData.setText(s); // JLabel lblData was set font as Tahoma 

br.close(); 
fr.close(); 

Im Fenster mit 7 und das System bereits der japanischen Schrift (MSMINCHO.TTF) installiert.

Wenn ich den obigen Code in Netbeans (6.9) Editor ausführen, dann wird das Programm korrekt angezeigt.

Aber wenn ich in JAR-Datei exportiert und das Programm unabhängig von Netbeans ausführen, wird es nicht mehr korrekt angezeigt.

Ich weiß nicht, warum das passiert ist und wie man es repariert?

+0

Warum verwenden Sie keine explizite Lokalisierung, um solche Abhängigkeiten zu vermeiden? – tartar

+0

Versuchen Sie, die Standardcodierung explizit festzulegen. Dies könnte nützlich sein: http://stackoverflow.com/questions/361975/setting-the-default-java-character-encoding – Oleksi

+0

[Java-Lokalisierung.] (Http://www.progdoc.de/papers/intSwing/intswing /intswing.html) – tartar

Antwort

1

Verwenden Fileinputstream und initialisieren den Leser wie folgt aus:

br = new BufferedReader(new InputStreamReader(new FileInputStream(filename), Charset.forName("UTF-8"))); 

, dass Sie die Zeichen aus der Datei korrekt geben wird.