google了一下
如果你想继续使用UTF-8的环境,请在你的 ~/.bash_profile里加两行
alias javac='javac -J-Dfile.encoding=UTF-8 -encoding UTF-8 '
alias java='java -Dfile.encoding=UTF-8 '
然后,重新打一下终端terminal,再次执行javac/java是不是有变化了?
如果你可以将terminal设置为GBK,那么可以用下面的方法
java和javac在简体中文的Mac OSX的终端(Terminal.app)环境下,默认是以GBK编码的中文输出各种诸如语法错误,数组访问越界之类的信息。
但是,Mac的终端的默认编码是UTF-8,所以javac和java在未配置的情况下会输出乱码。
解决方法有3个:
1)指定输出的编码为UTF-8
javac -J-Dfile.encoding=UTF-8
2)输出英文
export LC_ALL=en
3)通过iconv转码
javac something|iconv -f GBK -t UTF-8
对我来说,2)是最好的方案。一是可以把这个加入到.profile里,一劳永逸;二是输出为英文的话,可以搜索到更多的相关信息,毕竟英文资料比中文多得多。
另外还看到有人提到可以设置终端的编码为GBK。这个方法对我来说不太可行,因为我的大部分程序都是以UTF-8输出的。