2013-04-29 19 views
9

Proszę znaleźć poniższy przykładowy kod, Znak UTF-8 poprawnie wyświetla się w maszynie Windows. Ale nie jest odpowiedni dla komputera z systemem Linux (Ubuntu).Znak UTF-8 nie jest poprawny w JOptionPane

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); 
    } 
} 

Czy istnieje sposób rozwiązania tego problemu?

+0

* "Ale to nie jest właściwe dla komputera z systemem Linux (Ubuntu)." * Co widzisz na Ubuntu? Kropki, kwadraty, gwiazdki ..? –

+0

@AndrewThompson kwadraty. – sprabhakaran

+1

To nie brzmi jak problem z kodowaniem znaków. Bardziej prawdopodobne, że brakuje niektórych czcionek. –

Odpowiedz

2

Nie wszystkie czcionki zawierają pełny zestaw glifów w Unicode. Bloby są prawdopodobnie wynikiem niedostatecznej czcionki, ale w języku Java trudno jest określić, która czcionka jest faktycznie używana, i nie wiem, jak określić, czy te bloby są emitowane, chyba że je widzę.

Miałem ogromne problemy z unicode w wyskakujących menu, co prawdopodobnie jest bardzo podobny problem do Ciebie.

2 rzeczy do wypróbowania.

1) Napisz test czcionki, aby wyświetlić ciąg we wszystkich czcionkach dostępnych dla języka Java. 2) Spróbuj użyć komponentu bez wahania. Komponenty niezachodzące używają podstawowej obsługi czcionek systemu operacyjnego.