在 NetBeans 中看不到僧伽罗 Unicode 字符

pri*_*ime 3 java unicode netbeans utf-8

我试图在NetBeans 7.1 Java 应用程序中打印僧伽罗语字符。(在 Windows 7 中)其他语言,如中文和乌尔都语 .. 等将显示正确的字符。但是僧伽罗字符显示不正确。它将在代码和输出中显示为小框。虽然在这里它显示为“?????” . 我该如何解决?

我可以在 eclipse 环境中毫无问题地做到这一点。

    String a = "????";
    System.out.println(a);
    System.out.println("??");

    // sinhala
    char c = '\u0D85';
    System.out.println(c);
    System.out.println("\u0D85");
    System.out.println("?????");

    System.out.println(java.nio.charset.Charset.defaultCharset().name());
Run Code Online (Sandbox Code Playgroud)

我尝试将 Sources -> Encoding type 更改为 UTF-8。现在我的 netbeans.conf 文件我更改了netbeans_default_options并添加了-J-Dfile.encoding=UTF-8 如下

netbeans_default_options="-J-Dfile.encoding=UTF-8 -J-Dorg.netbeans.modules.tomcat.autoregister.token=1378930362898 -J-Dorg.netbeans.modules.tomcat.autoregister.catalinaHome=\"C:\Program Files\Apache Software Foundation\Apache Tomcat 6.0.20\" -J-Dorg.glassfish.v3ee6.installRoot=\"C:\Program Files\sges-v3\" -J-client -J-Xss2m -J-Xms32m -J-XX:PermSize=32m -J-Dapple.laf.useScreenMenuBar=true -J-Dapple.awt.graphics.UseQuartz=true -J-Dsun.java2d.noddraw=true -J-Dsun.zip.disableMemoryMapping=true"
Run Code Online (Sandbox Code Playgroud)

我怎样才能解决这个问题。?

leo*_*4jc 5

Netbeans 中的默认等宽字体对于 unicode 字符是不够的。尝试使用支持僧伽罗语的 unicode 字体。Windows 8 带有Iskoola PotaNirmala UI,可以很好地显示僧伽罗语。不知道Windows 7上能不能找到这两种字体,不过大家可以下载GNU FreeFont只有 FreeSerif有Sinhala)作为Iskoola PotaNirmala UI的替代品。

要在编辑器显示中查看僧伽罗字符,请选择 Netbeans 菜单:工具 => 选项 ==> 字体和颜色 => 语法选项卡 => 类别默认值 => 字体并将其设置为Iskoola PotaNirmala UIFreeSerif

同样,要在输出显示中查看僧伽罗字符,请选择 Netbeans 菜单:工具 ==> 选项 ==> 杂项 ==> 输出选项卡 ==> 字体并将其设置为Iskoola PotaNirmala UIFreeSerif。您可以右键单击输出显示并选择设置...直接转到那里。

这是您在 Windows 8 上的 Netbeans 8.0.2 中使用FreeSerif字体的代码和输出。

在此处输入图片说明

更多关于僧伽罗字体的阅读:Unicode 字体Microsoft Windows 中包含的字体列表