在Java中显示unicode字符

在Java中显示unicode字符,java,unicode,Java,Unicode,我试图在JavaSwing组件中显示Sinhala(80:0D80–0DFF)范围内的一些unicode字符。这些字母在eclipse控制台中正确显示,但在JButtons、JTextArea、JTextPane等中显示为方框 import java.awt.BorderLayout; import javax.swing.*; public class Unicode extends JFrame{ public Unicode(){ super("ක් කැ ක

我试图在JavaSwing组件中显示Sinhala(80:0D80–0DFF)范围内的一些unicode字符。这些字母在eclipse控制台中正确显示,但在JButtons、JTextArea、JTextPane等中显示为方框

import java.awt.BorderLayout;
import javax.swing.*;

public class Unicode extends JFrame{

    public Unicode(){

        super("ක් කැ කැ කු අ ඉ");

        add(new JButton("ක් කැ කැ කු අ ඉ \u0D88"),BorderLayout.NORTH);
        add(new JTextField("ක් කැ කැ කු අ ඉ"), BorderLayout.CENTER);

        setSize(500,500);
        setVisible(true);
    }

    public static void main(String a[]){
        new Unicode();
    }
 }
我尝试使用字符和字符代码来显示,但两者都不起作用。谷歌给出的许多答案都不起作用。请给我一个帮助。我正在使用Windows7和Java1.6


谢谢…

如果eclipse能够呈现僧伽罗字体,那么可以肯定的是,您的fontfile中有僧伽罗字形。现在swing组件无法拾取该字体,所以您需要显式强制拾取要显示的文件

为了得到一个通用的解决方案,您需要迭代代码页,并找到支持僧伽罗语范围的unicodes

有关更多信息,请查看此链接:

请将字体设置为“IskolaPotha”。
我认为它工作正常。(我用了这种字体)。但Swing组件(不带JFrame)不显示“ක්‍යෝ"正确使用unicode字符。

检查字体。最好在“\uxxx”中使用unicode字符格式,这样您就可以保存,而不依赖于源文件编码或字体。但最好将所有字符串都放在属性文件中。我的Swing规则:方框=字体问题,问号=编码问题。@Alexery:我尝试了\uXXX格式,但没有成功。@maamaa Eclipse不使用Swing;它使用SWT作为它的小部件工具包。Swing默认使用JRE逻辑字体。这看起来像是Swing实现中的字体替换问题。