2012-08-23 19 views
1

我們的服務器運行在CentOS上,我們的Java後端有時必須使用CP-1252來處理最初在Windows機器上生成的文件(我們的客戶之一),但是在95%以上的使用情況下,我們正在處理UTF-8文件。如何讓Java使用正確的字符集?

我的問題:如果我們知道,某些文件將總是是UTF-8,和其他文件將總是是CP-1252,是有可能在Java中指定的字符集用於在每個閱讀文件?如果是這樣的話:

  • 我們是否需要在系統級別上做任何事情來爲CentOS添加CP-1252?如果是這樣,這涉及到什麼?
  • 我們將使用哪些Java對象在每個文件基礎上應用正確的編碼?

在此先感謝!

+1

閱讀文件時,您[指定編碼](http://docs.oracle.com/javase/6/docs/api/java/io/InputStreamReader.html)。 –

回答

1

我的問題:如果我們知道,某些文件將永遠是UTF-8,和其他文件將永遠是CP-1252,是有可能在Java中指定的字符集用於閱讀每個文件?

假設你負責讀取文件的代碼,它應該沒問題。創建一個FileInputStream,然後將其包裝在指定相關字符編碼的InputStreamReader中。

我們需要在系統級別上做什麼來爲CentOS添加CP-1252?如果是這樣,這涉及到什麼?

這取決於JRE支持的內容。我從來沒有使用過CentOS,所以我不知道它是否有可能與相關的編碼一起作爲JRE的一部分。您可以使用Charset.isSupported來檢查,然後使用Charset.availableCharsets列出可用的項目。

2

您只需指定在使用XXXReader(InputStream in, Charset cs)時編寫原始文件的字符集/編碼。對於例如看InputStreamReader

相關問題