如何让Java使用正确的字符集?

如何让Java使用正确的字符集?,java,character-encoding,centos,cp1252,Java,Character Encoding,Centos,Cp1252,我们的服务器运行在CentOS上,我们的Java后端有时必须使用CP-1252处理最初在Windows机器上生成的文件(由我们的一个客户机生成),但是在95%以上的使用案例中,我们正在处理UTF-8文件 我的问题:如果我们知道某些文件总是UTF-8,而其他文件总是CP-1252,那么可以在Java中指定用于读取每个文件的字符集吗?如果是: 我们是否需要在系统级别上为CentOS添加CP-1252做些什么?如果是,这涉及到什么 我们将使用哪些Java对象对每个文件应用正确的编码 提前谢谢 使用

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

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

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

提前谢谢

使用
XXXReader(InputStream-in,charset-cs)
时,只需指定原始文件的字符集/编码。例如,看

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

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

我们是否需要在系统级别上为CentOS添加CP-1252做些什么?如果是,这涉及到什么

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

当您读取文件时,您可以使用。