使用java从文件中读取特殊字符?
我正在使用java读取一个文本文件,该文件具有一些特殊字符,如使用java从文件中读取特殊字符?,java,file,encoding,character-encoding,Java,File,Encoding,Character Encoding,我正在使用java读取一个文本文件,该文件具有一些特殊字符,如Yen(¥)。我在读取文件时没有指定任何编码/字符集,在windows中工作正常。但是,如果我在unix机器中部署相同的,则¥将替换为“?”。现在我将指定字符集windows-1252以避免该问题。windows-1252能在unix/linux机器上工作吗?我的unix box字符集设置为“utf-8”。我使用下面的代码: LineIterator iterator =FileUtils.lineIterator(*filename
Yen(¥)
。我在读取文件时没有指定任何编码/字符集,在windows中工作正常。但是,如果我在unix机器中部署相同的,则¥
将替换为“?
”。现在我将指定字符集windows-1252以避免该问题。windows-1252
能在unix/linux
机器上工作吗?我的unix box字符集设置为“utf-8
”。我使用下面的代码:
LineIterator iterator =FileUtils.lineIterator(*filename*,"Windows-1252");
类
StandardCharsets
为您提供了编码/字符集列表,这些编码/字符集“保证在Java平台的每个实现中都可用”
此列表不包含Windows编码,但对于Windows、Mac和Linux上最常见的Java版本,Cp1251
可用
请注意,当它不可用时,您将得到一个UnsupportedCharsetException
或unsupportedCodingException
,因此上面的代码是安全的(从不会产生垃圾的意义上讲)
如果您希望真正安全,通常的方法是在项目中仅使用UTF-8编码的数据。如果我正确理解您的问题,我通常会通过使用文本编辑器以UTF-8编码保存文本文件来解决此问题,然后在从java程序打开该文件时再次指定UTF-8。可能重复-