Netbeans不能正确显示UTF8 Unicode字符(表情符号)

3

我一直无法在 Netbeans 中的代码(或纯文本 .txt 文件)中显示这些字符。

相反,它们会显示为白色方块,如下所示:

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

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

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

我使用的是 Windows 10。

另外还有两个有趣的注意点:

  • 不同类型的心形字符 () 在 Netbeans IDE 8.0.2 使用 Courier New 13 可以正常工作。
  • 更改到其他字体(在 Netbeans 中)有时可以导致一些字符正确显示。

但我真的很想继续在 Netbeans 中使用 Courier New 13,并希望修复 Netbeans 以正确显示所有这些字符(就像 Notepad++ 和其他程序已经做到的那样)。


你的项目使用的编码是什么? - Alastair McCormack
@AlastairMcCormack 在我的项目属性中,我已经设置了 编码:UTF-8 - Ryan
1个回答

7
为了解决这个问题,您需要找到支持这些符号的字体,然后:
1. (可能需要)下载并安装该字体。 2. 在NetBeans中两个位置设置该字体(对于编辑窗口,在“工具-选项-字体和颜色-字体”处设置;对于输出窗口,在“工具-选项-杂项-字体”处设置)。
我在这篇Stack Overflow帖子中详细说明了如何做到这一点。
一种解决方法是将NetBeans的编辑器和输出窗口字体都更改为Segoe UI Symbol。由于NetBeans 8.2中已经提供,因此无需下载任何字体。以下是一个测试程序的源代码和输出结果:nbSymbols 引用了一段内容:
当我使用“Courier New”字体打开同一文本文件 Notepad++ 6.9 时,我可以正确地看到所有这些字符!Microsoft Word 也正常显示它们。
我不使用Notepad ++或Word,但在Windows WordPad中发生了以下情况:
1. 如果打开WordPad,则字体显示为Calibri 11。 2. 当我从OP中粘贴符号字符串时,它会正确显示,但是字体会重置为Segoe UI Symbol。 Wordpad可能识别到Calibri 11无法处理粘贴的文本,并选择可以处理的替代字体。 3. 如果我在符号字符串上方或下方键入文本,则字体会再次重置为Calibri 11。如果我使用Courier而不是Calibri,则情况也是如此。
因此,WordPad明显允许文档使用多种字体,至我所知NetBeans 编辑器不支持。您确定Word和Notepad ++确实使用Courier New 13来呈现符号吗?WordPad绝对没有。
引用了一段内容:
我真的很想继续在Netbeans中使用Courier New 13,并且我想修复Netbeans,使其正确显示所有这些字符
由于Courier New 13在NetBeans中是等宽字体,因此可以预期它不能处理OP中的变宽符号,而且它也不支持这些符号,这些符号比Courier字体年轻得多。我认为NetBeans本身没有任何需要“修复”的问题。

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接