2014-11-23 48 views
1

我的測試程序是:是否存在StringBuilder錯誤?

public class Test { 
    public static void main(String[] args) { 
     char ch = 65270; 
     StringBuilder sb = new StringBuilder(); 
     sb.append(ch); 
     sb.append(" -> "); 
     sb.append(Integer.valueOf(ch)); 
     System.out.println(sb.toString()); 
    } 
} 

結果是:65270 < - لآ

我不明白爲什麼?

我過期的結果是:? - > 65270

終端的實際結果(使用命令「javac Test.java」和「java test」):? - > 65270

但在Eclipse控制檯中:65270 < - ?

它看起來像一個Eclipse問題?

+1

我不明白爲什麼它應該做一些不同的事情。你會期待什麼樣的行爲? – Philipp 2014-11-23 06:48:42

+0

我得到'? - > 65270'當運行這個代碼 – Eran 2014-11-23 06:49:22

+0

@Eran這是因爲你可能有希伯來語鍵盤 – 2014-11-23 06:50:04

回答

1

您的結果的原因是字符65270是一個阿拉伯語連字。阿拉伯語是從右向左寫的腳本。 Eclipse控制檯因此會從左到右更改從右到左的方向。如果您嘗試使用不是從右到左腳本的腳本中的字符,結果將如預期的那樣。例如,嘗試使用0x5678這是舊的中國符號噸(重量)。

相關問題