java - 我的 utf8 应用程序在 eclipse 中工作正常,但在终端中却不行

标签 java macos utf-8

我有一个使用 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/

相关文章:

php - 无法在 PHP 中解码 UTF8?

bash - 有没有一种直接的方法可以在 MacO 上转换基于毫秒的时间戳?

Python Web 服务器 UTF8 编码

java - 不同switch case中的变量不能重名?

java - 检索 selenium IE 驱动程序的 PID

macos - 安装 Erlang 时出现 "configured for kerberos but no krb5.h found"

objective-c - OSX NSUserDefaults 不工作

java - 无效的字符串值 : '\xD0...." for the column . ...“。utf8 字符集尝试使用

java - 在开始新 Activity 之前等待 HttpRequest 完成

java - 使用旋转矩阵围绕不同原点旋转对象? (java)