java将unicode字符打印到bash shell(mac OsX)
我在java 1.6中有以下代码:java将unicode字符打印到bash shell(mac OsX),java,bash,unicode,utf-8,character-encoding,Java,Bash,Unicode,Utf 8,Character Encoding,我在java 1.6中有以下代码: System.out.println("\u00b2"); 但是在OSX10.6的bash上,我得到的是问号,而不是unicode字符 实际上,我想在扩展ascii码上打印字符176177178(看这里),以便在bash终端上创建一些艺术 有什么想法吗 谢谢bash是UTF8语言环境吗?键入locale命令并查看您的语言是否合适(例如类似于*en_GB.UTF-8*)。如果没有,请更新LANG的值并重试。首先,您需要确保终端会话中的字符编码与java应用程序
System.out.println("\u00b2");
但是在OSX10.6的bash上,我得到的是问号,而不是unicode字符
实际上,我想在扩展ascii码上打印字符176177178(看这里),以便在bash终端上创建一些艺术
有什么想法吗
谢谢bash是UTF8语言环境吗?键入locale命令并查看您的语言是否合适(例如类似于*en_GB.UTF-8*)。如果没有,请更新LANG的值并重试。首先,您需要确保终端会话中的字符编码与java应用程序的输出相匹配。您很可能想要UTF-8,我相信它是OSX下的标准配置
接下来,您需要确保终端会话中使用的字体确实包含希望看到的字符。这些似乎很少见,可能不是所有字体都可用。验证
终端>首选项>编码是否已选中UTF-8。以下代码在Mac OS X 10.6.7上启用UTF-8的Terminal.app中对我有效:
# 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
实际上,这些unicode字符就可以了。。U+2591░灯罩U+2592▒中色调U+2593▓深色,但“\u2592”似乎也不起作用。这取决于您的终端设置(以及Java对这些终端设置的看法),而不是外壳。请注意,没有扩展ASCII。这一页可能意味着。