使用java从文件中读取特殊字符?

时间:2013-09-25 10:00:17

标签: java file encoding character-encoding

我使用java来读取文本文件,其中包含一些特殊的字符,如Yen(¥)。我在读取文件时没有指定任何编码/字符集,并且在Windows中工作正常。但是如果我在unix机器中部署相同的内容,那么¥将替换为“?”。现在我要指定charset windows-1252来避免这个问题。将windows-1252 unix/linux框上的utf-8工作?我的unix box charset设置为“LineIterator iterator =FileUtils.lineIterator(*filename*,"Windows-1252"); ”。我在代码下方使用:

{{1}}

2 个答案:

答案 0 :(得分:2)

StandardCharsets为您提供了“保证在Java平台的每个实现中都可用的编码/字符集列表。”

此列表不包含Windows编码,但对于Windows,Mac和Linux上的大多数常见Java版本,Cp1251可用。

请注意,当它不可用时,您将获得UnsupportedCharsetExceptionUnsupportedEncodingException,因此上面的代码是安全的(从某种意义上说它不会产生垃圾)。

如果您想要非常安全,通常的方法是在项目中仅使用UTF-8编码数据。

答案 1 :(得分:0)

如果我正确理解您的问题,我通常会使用文本编辑器以UTF-8编码保存文本文件,然后在从java程序打开该文件时再次指定UTF-8来解决此问题。

相关问题