簡體   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