首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我不明白为什么DrJava不能输出Unicode符号。

我不明白为什么DrJava不能输出Unicode符号。
EN

Stack Overflow用户
提问于 2013-05-22 11:44:56
回答 3查看 2.2K关注 0票数 23

首先,我想为我在Java和一般编程方面令人难以置信的新手道歉。但我到处寻找这个问题的答案,似乎就是找不到一个。

因此,我只是尝试运行以下命令:

代码语言:javascript
复制
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显示以下内容作为输出:

代码语言:javascript
复制
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

最奇怪的是,当我简单地输入

代码语言:javascript
复制
'\u2261'

在Interaction框中,我获得了用单引号括起来的等价字符:

代码语言:javascript
复制
'≡'

我试着在代码中简单地放入' \u2261‘而不是“\u2261 ",但是我得到了类似这样的东西:

代码语言:javascript
复制
8803 modulo 7
8805 modulo 7
8807 modulo 7

我还尝试简单地将unicode字符插入到代码中,但这只是给出了一个错误消息。有没有人知道是怎么回事,或者我做错了什么?非常感谢您的帮助。

我应该补充说,这不是一个家庭作业或任何东西,因为我们的书几乎没有提到Unicode -只是试图弄清楚这一点……当我刚开始的时候,我没想到会这么难!

编辑:我使用的是MacOS10.7.5,Java博士说它的版本是"drjava-20120818-r5686“。

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

EN

回答 3

Stack Overflow用户

发布于 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选项卡(未显示)中也会发生同样的情况。

票数 8
EN

Stack Overflow用户

发布于 2017-05-16 00:40:35

我做了一些研究,我找到了之前在另一个问题here中找到的解决方案

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

“字符编码取决于系统。它可能打印UTF-16编码的16位( 9794)、高8位( 38)或低8位( 66)。

代码语言:javascript
复制
9794 / 256 = 38
9794 % 256 = 66

票数 2
EN

Stack Overflow用户

发布于 2013-05-22 12:37:43

您是否已将提示符更改为以unicode格式输出。(请注意,在英语世界中,Java的默认设置是IS0-8859-1)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16683126

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档