我把电脑设置成了日语(嘿,这是很好的语言练习),一切都不错...除了 javac
。它会将本地化错误消息显示到控制台上,但它们是Shift-JIS而不是UTF8:
$ javac this-file-doesnt-exist.java
javac: ?t?@?C??????????܂???: this-file-doesnt-exist.java
?g????: javac <options> <source files>
?g?p?\?ȃI?v?V?????̃??X?g?ɂ??ẮA-help ???g?p???܂
如果我通过
nkf -w
将输出导入,那么它就可以读取,但这并不是一个很好的解决方案。$ javac this-file-doesnt-exist.java 2>&1 | nkf -w
javac: ファイルが見つかりません: this-file-doesnt-exist.java
使い方: javac <options> <source files>
使用可能なオプションのリストについては、-help を使用します
除了Java自身输出的所有信息都是英文(这没问题),其他一切(使用UTF8)都可以在命令行下正常工作:我可以输入日语文件名,Tab补全也正常工作,vi可以编辑UTF-8文件等。
这是我的环境的相关部分:
LC_CTYPE=UTF-8
LANG=ja_JP.UTF-8
从外观上看,
javac
没有正确地获取编码,而 java
根本没有获取语言。我也尝试过 -Dfile.encoding=utf8
,但是什么都没发生,至少从 Google 上来看,JVM 工具链的本地化文档相当缺乏。附加说明:
Macports OpenJDK6 表现更好:
$ /opt/local//share/java/openjdk6_bootstrap/bin/javac this-file-doesnt-exist.java
javac: file not found: this-file-doesnt-exist.java
Usage: javac <options> <source files>
use -help for a list of possible options