Netbeans没有正确显示UTF8 unicode字符(表情符号)

时间:2016-06-05 17:05:11

标签: netbeans unicode encoding utf-8 fonts

我无法在Netbeans中的代码(或普通.txt文件)中显示这些字符。

✰☆★☞☛❸➂❤♡✉

相反,它们像这样的白色方块:

☐☐☐☐☐☐☐☐☐☐☐☐☐☐☐☐☐☐☐☐☐

我正在使用Netbeans IDE 8.0.2。我已在-J-Dfile.encoding=UTF-8中设置了../etc/netbeans.conf。在我的项目属性中,我设置了Encoding : UTF-8。工具>选项>字体&颜色>默认>字体> Courier New 13。

有趣的是,当我使用Notepad ++ 6.9(并使用“Courier New”字体)打开相同的文本文件时,我可以看到所有这些字符都很好! Microsoft Word也正确显示它们。

我在Windows 10上。

另外两个有趣的说明:

  • 使用Courier New 13在Netbeans IDE 8.0.2中使用不同类型的心形字符(
  • 更改为Courier New 13以外的字体(在Netbeans中)有时会导致某些字符正确显示。
    • 但我真的想继续在Netbeans中使用Courier New 13,我想修复Netbeans以便正确显示所有这些字符(如Notepad ++和其他程序已经做的那样)。

1 个答案:

答案 0 :(得分:1)

要解决此问题,您需要找到支持这些符号的字体,然后:

  • (可能)下载并安装该字体。
  • 在NetBeans中的两个位置设置该字体(工具 - >选项 - >字体和颜色 - >字体用于编辑窗口,工具 - >选项 - >杂项 - >输出窗口的字体。)

我在an answer to this SO post中指定了完成所有操作的详细信息。

一种解决方案是将编辑器和输出窗口的NetBeans字体更改为 Segoe UI Symbol 。无需字体下载,因为它已在NetBeans 8.2中提供。这是测试程序的来源和输出:

nbSymbols

  

...当我使用Notepad ++ 6.9打开相同的文本文件时(和   使用" Courier New"我可以看到所有这些角色都很好!   Microsoft Word也正确显示它们。

我没有使用NotePad ++或Word,但在Windows写字板中会发生以下情况:

  • 如果我打开写字板,字体显示为 Calibri 11
  • 当我从OP粘贴符号字符串时,它显示正确,但字体重置为Segoe UI符号。据推测,Wordpad正在认识到 Calibri 11 无法处理粘贴的文本并选择可以使用的替代字体。
  • 如果我在符号字符串上方或下方的行上键入文字,则会再次将字体重置为Calibri 11 。如果我使用 Courier 而不是 Calibri ,也会发生同样的事情。

因此,写字板显然允许文档使用多种字体,据我所知,NetBeans编辑器不支持这种字体。你确定Word和Notepad ++真正使用 Courier New 13 来渲染符号吗?写字板肯定不是。

  

我真的想继续在Netbeans中使用Courier New 13,而我   想要修复Netbeans,以便正确显示所有这些   字符

由于Courier New 13是NetBeans中的单行间距字体,因此可以预期它无法处理OP中的可变宽度符号,并且无论如何它只是没有支持那些比Courier字体更年轻的符号。我不认为有什么可以修复"使用NetBeans本身。

您仍然可以在程序源中使用OP中的符号字符,但是需要将它们指定为Unicode字符串,当然您可以继续使用 Courier New 字体。有关示例,请参阅上面屏幕截图中的代码。