2013-09-25 102 views
0

我用java讀取一個文本文件,其中有一些特殊字符像Yen(¥)。在閱讀文件時我沒有指定任何編碼/字符集,並且在windows中工作正常。但是,如果我在unix機器上部署相同,那麼¥被替換爲'?'。現在我要指定charset windows-1252來避免這個問題。將windows-1252工作在unix/linux框?我的unix box charset設置爲'utf-8'。現在用下面的代碼:使用java讀取文件中的特殊字符?

LineIterator iterator =FileUtils.lineIterator(*filename*,"Windows-1252"); 
+0

可能的複製 - http://stackoverflow.com/questions/8912313/reading-special-characters-from-file-java –

回答

2

StandardCharsets爲您提供了編碼/那些字符集列表「保證是用於Java平臺的每一種實現。」

此列表不包含Windows編碼,但是在Windows,Mac和Linux最常見的Java版本,Cp1251可用。

請注意,如果不可用,您將得到UnsupportedCharsetExceptionUnsupportedEncodingException,所以上面的代碼是安全的(從它不會產生垃圾的意義上說)。

如果你想成爲真正安全的,常用的方法是在你的項目中只使用UTF-8編碼的數據。

0

如果我正確理解你的問題,我usualy通過保存在UTF-8編碼的文本文件格式的文本編輯器,然後從你的java程序中打開該文件時再次指定UTF-8解決這個問題。

相關問題