char c= '\u0000';
System.out.println(c);
在Eclipse
,它打印一個小廣場,這意味着一個空字符。
但它在CLI中運行時打印出'a'。
然後我在其他計算機上運行它,某些打印'a',一些打印空間。
爲什麼會發生這種情況?
我的操作系統是Windows 7 professional-32bit。其他系統是windows xp。
我的Java版本是jdk_1.6.0update12。
char c= '\u0000';
System.out.println(c);
在Eclipse
,它打印一個小廣場,這意味着一個空字符。
但它在CLI中運行時打印出'a'。
然後我在其他計算機上運行它,某些打印'a',一些打印空間。
爲什麼會發生這種情況?
我的操作系統是Windows 7 professional-32bit。其他系統是windows xp。
我的Java版本是jdk_1.6.0update12。
它不打印對我來說:
public class Mkt {
public static void main(String[] args) {
char c= '\u0000';
System.out.println("-" + c + "-");
}
}
$ javac Mkt.java && java Mkt
--
的Ubuntu 11.10的位置:
$ java -version
java version "1.6.0_26"
Java(TM) SE Runtime Environment (build 1.6.0_26-b03)
Java HotSpot(TM) 64-Bit Server VM (build 20.1-b02, mixed mode)
要做的檢查/嘗試:
(a)控制檯窗口不是終端窗口。 (b)除了諸如zsnes之類的東西之外,沒有控制檯模擬器 - 您可能正在尋找術語»終端模擬器«,甚至在Windows上會出錯 - 控制檯只是輪詢隱藏的控制檯窗口以進行更改,並將其複製屏幕緩衝區;幾乎沒有魔法,幾乎沒有什麼模仿。 (c)順便說一句,重定向到文件會繼承Windows控制檯的相同特性。 – Joey 2012-03-29 05:58:03
我hava檢查,當我改變字體,它顯示了一個空間。重定向到一個文件,它顯示了一個小方塊。所以我認爲原因是Windows控制檯不能正確處理unicode – user1298336 2012-03-29 14:14:50
什麼是命令提示符的字符編碼? – 2012-03-29 04:11:22
Windows控制檯不能正確處理unicode。重定向到一個文件,它顯示正確的輸出。 – 2012-03-29 04:12:17
如果您使用的是理智的字體(即不是光柵字體),Windows控制檯應該正確顯示Unicode,禁止複雜的腳本。如果您使用Unicode編碼,並且光柵字體顯示轉換爲OEM代碼頁,則它支持Unicode。 – Joey 2012-03-29 05:54:58