如何让Java使用正确的字符集?
我们的服务器运行在CentOS上,我们的Java后端有时必须使用CP-1252处理最初在Windows机器上生成的文件(由我们的一个客户机生成),但是在95%以上的使用案例中,我们正在处理UTF-8文件
我的问题:如果我们知道某些文件将始终为UTF-8,而其他文件将始终为CP-1252,那么是否可以在Java中指定用于读取每个文件的字符集?如果是:
- 我们是否需要在系统级别上为CentOS添加CP-1252做些什么?如果是,这涉及到什么李>
- 我们将使用哪些Java对象对每个文件应用正确的编码李>
提前谢谢
# 1 楼答案
假设您负责读取文件的代码,那么应该可以。创建一个
FileInputStream
,然后将其包装在指定相关字符编码的InputStreamReader
中这取决于JRE支持什么。我从来没有使用过CentOS,所以我不知道它是否可能与相关编码一起作为JRE的一部分。您可以使用^{} 进行检查,并使用^{} 列出可用的内容
# 2 楼答案
您所需要做的就是指定使用
XXXReader(InputStream in, Charset cs)
时原始文件写入的字符集/编码。例如,看看InputStreamReader