我有一个使用 Java
开发的应用程序。当我在 Eclipse 中测试它时,它工作得很好。每个字符都是完美的,但是当我编译并导出 jar 并使用 OS X 终端测试它时,奇怪的字符 (我是西类牙人) 是错误的。他们是一个“?”。
我想我到处都使用UTF-8
,所以我不知道该怎么办。
谢谢
最佳答案
很可能,您没有在任何地方都使用 UTF-8,但有一些默认为平台编码的代码(反过来可以通过环境变量设置,并且在 Eclipse 之间可能有所不同,其中它被设置为匹配工作区文件编码和您的 shell)。
确保您在代码中明确将“UTF-8”作为所有字符转换(例如打开阅读器)的字符集。
例如,不要使用
Reader r = new FileReader("a.txt");
使用
Reader r = new InputStreamReader(new FileInputStream("a.txt"), "UTF-8");
如果这是不可能的,短期解决方案是设置适当的环境变量或系统属性(我认为-Dfile.encoding=UTF-8
)。
关于java - 我的 utf8 应用程序在 eclipse 中工作正常,但在终端中却不行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11098879/