0

我有一个用Java. 当我在 中测试它时Eclipse,它工作得很好。每个字符都是完美的,但是当我编译和导出 jar 并使用 OS X 终端对其进行测试时,奇怪的字符(我是西班牙人)是错误的。他们是一个“?”。

我想我UTF-8到处都在使用,所以我不知道该怎么办。

谢谢

4

2 回答 2

2

最有可能的是,您没有在任何地方使用 UTF-8,而是有一些默认为平台编码的代码(这反过来可以由环境变量设置,并且在 Eclipse 之间可能不同,它被设置为匹配工作空间文件编码和你的外壳)。

确保在代码中的所有字符转换(例如打开阅读器)中明确将“UTF-8”作为字符集。

例如,不要使用

Reader r = new FileReader("a.txt");

利用

Reader r = new InputStreamReader(new FileInputStream("a.txt"), "UTF-8");

如果这不可能,短期的解决方案是设置适当的环境变量或系统属性(我认为-Dfile.encoding=UTF-8)。

于 2012-06-19T10:17:37.007 回答
1

locale使用终端上的命令检查您的语言环境。打印的字符串应包含.UTF-8.utf8类似的后缀。如果他们不这样做,则您使用的是非 UTF-8 语言环境,并且您的应用程序的输出无法正确显示。我不确定哪些语言环境可用,但您可以export LC_ALL=es_ES.UTF-8在运行应用程序之前尝试运行,并检查是否有帮助。

于 2012-06-19T10:16:46.227 回答