2011-06-17 65 views
2

我在Java 1.6的驗證碼的Java打印Unicode字符到bash shell中(MAC OSX)

System.out.println("\u00b2"); 

但對OSX10.6慶典,我得到問號,而不是Unicode字符...

實際上我想打印字符176,177,178上的擴展ascii碼(看這裏http://www.asciitable.com/)在bash終端上創建一些藝術..

任何想法?

謝謝

+0

實際上這些Unicode字符就可以了.. U + 2591 \t░\t透光燈罩 U + 2592 \t▒\t中等色調 U + 2593 \t▓\t深色陰影,但「\ u2592」似乎也沒有工作.. – luca 2011-06-17 10:18:18

回答

5

下面的代碼對我的作品在UTF-8啓用Terminal.app在Mac OS X 10.6.7:

# code taken from: 
# "Print Unicode characters to the Terminal with Java", 
# http://hints.macworld.com/article.php?story=20050208053951714 

echo ' 
import java.io.PrintStream; 
import java.io.UnsupportedEncodingException; 
class Test { 
    public static void main (String[] argv) throws UnsupportedEncodingException { 
    String unicodeMessage = "\u00b2\u2591\u2592\u2593"; 
    PrintStream out = new PrintStream(System.out, true, "UTF-8"); 
    out.println(unicodeMessage); 
    } 
} 
' > test.java 

javac test.java 
java Test 
0

bash是UTF8語言環境嗎?輸入區域設置命令並查看您的LANG是否適合(例如* en_GB.UTF-8 *之類的內容)。如果沒有,請更新LANG的值並重試。

0

首先,您需要確定終端會話中的字符編碼與您的java應用程序輸出的內容相匹配。你很可能想要UTF-8,我相信這是在OS X下的標準。

接下來,你需要確定終端會話中使用的字體實際上包含你想看到的字符。這些似乎很少見,並且可能不適用於所有字體。

0

確認Terminal > Preferences > Encodings已檢查UTF-8。