Я пытаюсь отобразить глиф, соответствующий unicode 0x95E8. Этот код в основном представляет собой блок CJK (китайский, японский, корейский).
Я изо всех сил пытаюсь понять, может ли представление глифа этого конкретного кода отличаться для японского и китайского языков.
Когда я показываю этот U + 95E8 в JTextArea, я могу видеть символ «门» в Linux/Windows. Но когда я пытаюсь отобразить ту же кодовую точку на своем «встроенном устройстве». отображаемый символ изменится на.
Я хочу знать, должна ли эта кодовая точка U + 95E8 иметь единообразное представление во всех локалях CJK (китайский, японский, корейский) или для некоторых из них она отличается. Может ли такое проявление быть из-за того, что на разных устройствах установлен разный шрифт? Прошу прощения за свое невежество, но я не слишком увлекаюсь интернационализацией.
import java.awt.*;
import java.awt.event.*;
import java.util.Locale;
import javax.swing.*;
public class TextDemo extends JPanel implements ActionListener {
public TextDemo() {
}
public void actionPerformed(ActionEvent evt) {
}
/**
* Create the GUI and show it. For thread safety,
* this method should be invoked from the
* event dispatch thread.
* @throws InterruptedException
*/
private static void createAndShowGUI() throws InterruptedException {
JFrame frame = new JFrame(java.util.Locale.getDefault().getDisplayName());
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Container contentPane = frame.getContentPane();
contentPane.setLayout(new SpringLayout());
Dimension size = new Dimension(500, 500);
frame.setSize(size);
JTextArea textArea = new JTextArea();
//Font font1 = new Font("SansSerif", Font.BOLD, 20);
//textArea.setFont(font1);
textArea.setEditable(true);
textArea.setSize(new Dimension(400,400));
textArea.setDefaultLocale(java.util.Locale.SIMPLIFIED_CHINESE);
textArea.setText("Printing U+95E8 : \u95e8");
contentPane.add(textArea);
frame.setVisible(true);
}
public static void main (String[] args) {
java.util.Locale.setDefault(java.util.Locale.JAPANESE);
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
try {
createAndShowGUI();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
}
}