繁体   English   中英

我无法弄清楚为什么DrJava不会输出Unicode符号

[英]I can't figure out why DrJava won't output Unicode symbols

我想就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'

进入Interactions框,我在单引号中得到等价字符:

'≡'

我试过简单地将'\\ u2261'放在代码而不是“\\ u2261”中,但后来我得到这样的东西:

8803 modulo 7
8805 modulo 7
8807 modulo 7

我也试过简单地将unicode字符插入代码中,但这只是给出了一条错误消息。 任何人都可以弄清楚发生了什么或者我做错了什么? 非常感谢您的帮助。

[我应该补充一点,这不是家庭作业或任何事情,因为我们的书甚至几乎没有提到Unicode - 只是想弄明白......当我开始时,我不认为这会很难!]

编辑:我使用的是Mac OS 10.7.5,Java博士说它的版本是“drjava-20120818-r5686”。

编辑#2:这是使用Monospaced 12作为我的主要字体的屏幕截图。 它仍然显示为问号,即使我可以让控制台返回符号,如果我直接键入它,但使用单引号。

在此输入图像描述

问题与您使用的字体有关,这不是您的代码的问题。 请参阅Edit > Preferences > Display Options > Fonts > Main Font下的DrJava设置。

DrJava在Linux上使用默认字体(Monospaced 12): Linux上的DrJava,“Main Font”设置为默认值(Monospaced 12)

DrJava在Linux上使用不同的字体(PT Sans 12): Linux上的DrJava,“Main Font”设置为“PT Sans 12”

这两个截图都来自DrJava的同一个实例; 我甚至不用把它关掉。 请注意,在“交互”窗格中,字形对于我的Monospaced字体是正确的,并且是PT Sans的通用占位符。 “控制台”选项卡中也会出现相同的情况(未显示)。

我做了一些研究,我发现,是从另一个问题之前找到解决方案在这里

所以在这种情况下,它可能是类似的东西。 不是你的代码,而是DrJava根据你的系统处理unicode的方式。

“字符编码取决于系统。根据你的盒子,它可能会打印16位的UTF-16编码(9794),高8位(可能是38位),或者像你的情况一样,打印低位8位(66位)。

9794 / 256 = 38
9794 % 256 = 66

您是否已将提示更改为以unicode输出。(注意英语世界的Java默认值为IS0-8859-1)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM