1

我们的服务器在 CentOS 上运行,我们的 Java 后端有时必须处理最初在 Windows 机器上(由我​​们的一个客户端)使用 CP-1252 生成的文件,但是在 95% 以上的用例中,我们正在处理UTF-8 文件。

我的问题:如果我们知道某些文件将始终是 UTF-8,而其他文件将始终是 CP-1252,是否可以在 Java 中指定用于读取每个文件的字符集?如果是这样的话:

  • 我们需要在系统级别做任何事情来将 CP-1252 添加到 CentOS 吗?如果是这样,这涉及什么?
  • 我们将使用哪些 Java 对象来对每个文件应用正确的编码?

提前致谢!

4

2 回答 2

2

您需要做的就是指定在使用XXXReader(InputStream in, Charset cs). 例如看看InputStreamReader

于 2012-08-23T14:05:05.470 回答
1

我的问题:如果我们知道某些文件将始终是 UTF-8,而其他文件将始终是 CP-1252,是否可以在 Java 中指定用于读取每个文件的字符集?

假设您负责读取文件的代码,那应该没问题。创建一个FileInputStream,然后将其包装在一个InputStreamReader指定相关的字符编码中。

我们需要在系统级别做任何事情来将 CP-1252 添加到 CentOS 吗?如果是这样,这涉及什么?

这取决于 JRE 支持什么。我从来没有使用过 CentOS,所以我不知道它是否可能带有相关编码作为 JRE 的一部分。您可以使用Charset.isSupported来检查,并Charset.availableCharsets列出可用的内容。

于 2012-08-23T14:05:46.083 回答