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