2013-04-29 20 views
9

Finden Sie den folgenden Beispielcode, das UTF-8-Zeichen ordnungsgemäß in Windows-Maschine angezeigt. Aber es ist nicht für Linux-Maschine (Ubuntu) geeignet.UTF-8-Zeichen ist in JOptionPane nicht korrekt

import javax.swing.JOptionPane; 

public class JContPaneTest 
{ 
    public static void main(String[] args) 
    { 
    JOptionPane.showMessageDialog(null, "\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3002\u30c7\u30fc\u30bf\u30d9\u30fc", "Error",JOptionPane.ERROR_MESSAGE); 
    } 
} 

Gibt es eine Möglichkeit, dieses Problem zu lösen?

+0

* "Aber es ist nicht für Linux-Maschine (Ubuntu) geeignet." * Was siehst du auf Ubuntu? Tupfen, Quadrate, Sterne ..? –

+0

@AndrewThompson Quadrate. – sprabhakaran

+1

Das klingt nicht wie ein Zeichencodierungsproblem. Wahrscheinlicher, dass einige Schriftarten fehlen. –

Antwort

2

Nicht alle Schriftarten enthalten den vollständigen Unicode-Satz von Glyphen. Die Blobs sind wahrscheinlich das Ergebnis einer mangelhaften Schriftart, aber in Java ist es schwer zu bestimmen, welche Schriftart tatsächlich verwendet wird, und ich weiß nicht, wie man diese Blobs aussenden kann, außer sie zu sehen.

Ich hatte riesige Probleme mit Unicode in Pop-up-Menüs, die wahrscheinlich ein sehr ähnliches Problem zu Ihrem ist.

2 Dinge zu versuchen.

1) Schreiben Sie einen Schriftartentest, um Ihre Zeichenkette in allen Schriftarten anzuzeigen, die für Java verfügbar sind. 2) Verwenden Sie eine nicht schwenkbare Komponente. Nicht-Swing-Komponenten verwenden die zugrunde liegende Betriebssystemschriftartenunterstützung.