首先,我想为我在Java和一般编程方面令人难以置信的新手道歉。但我到处寻找这个问题的答案,似乎就是找不到一个。
因此,我只是尝试运行以下命令:
public class WriteSquares2
{
public static void main(String[] args)
{
for (int i=1; i<=10; i++)
{
System.out.println(i + " \u2261 " + (i % 7) + " modulo 7");
}
}
}Unicode字符\u2261是全等符号(≡)。DrJava显示以下内容作为输出:
1 ? 1 modulo 7
2 ? 2 modulo 7
3 ? 3 modulo 7
4 ? 4 modulo 7
5 ? 5 modulo 7
6 ? 6 modulo 7
7 ? 0 modulo 7
8 ? 1 modulo 7
9 ? 2 modulo 7
10 ? 3 modulo 7最奇怪的是,当我简单地输入
'\u2261'在Interaction框中,我获得了用单引号括起来的等价字符:
'≡'我试着在代码中简单地放入' \u2261‘而不是“\u2261 ",但是我得到了类似这样的东西:
8803 modulo 7
8805 modulo 7
8807 modulo 7我还尝试简单地将unicode字符插入到代码中,但这只是给出了一个错误消息。有没有人知道是怎么回事,或者我做错了什么?非常感谢您的帮助。
我应该补充说,这不是一个家庭作业或任何东西,因为我们的书几乎没有提到Unicode -只是试图弄清楚这一点……当我刚开始的时候,我没想到会这么难!
编辑:我使用的是MacOS10.7.5,Java博士说它的版本是"drjava-20120818-r5686“。
编辑#2:这是一个截图,使用Monospaced 12作为我的主要字体。它仍然显示为问号,即使我可以让控制台返回我的符号,如果我直接输入它,但带有单引号。

发布于 2013-05-22 14:36:53
这个问题与你使用的字体有关,而不是你的代码的问题。请参阅Edit > Preferences > Display Options > Fonts > Main Font下的DrJava设置。
在Linux上使用默认字体(等宽12)的DrJava:

在Linux上使用不同字体(PT Sans 12)的DrJava:

这两个屏幕截图来自同一个DrJava实例;我甚至不需要关闭它。请注意,在交互窗格中,字形对于等宽字体是正确的,并且是PT Sans的通用占位符。在Console选项卡(未显示)中也会发生同样的情况。
发布于 2017-05-16 00:40:35
我做了一些研究,我找到了之前在另一个问题here中找到的解决方案
所以在这种情况下,它可能是类似的东西。这不是您的代码,而是DrJava根据您的系统处理unicode的方式。
“字符编码取决于系统。它可能打印UTF-16编码的16位( 9794)、高8位( 38)或低8位( 66)。
9794 / 256 = 38
9794 % 256 = 66“
发布于 2013-05-22 12:37:43
您是否已将提示符更改为以unicode格式输出。(请注意,在英语世界中,Java的默认设置是IS0-8859-1)。
https://stackoverflow.com/questions/16683126
复制相似问题