2011-05-31 110 views
9

我需要您的幫助。 我正在從一個java應用程序轉換數據從一個txt文件到數據庫,問題是該文件具有ANSI編碼,我不能改變,因爲它來自我的應用程序之外,當我寫數據到數據庫我有一些「???」內。 我的問題是,我如何將從ANSI文件讀取的數據轉換爲可處理那些符號的UTF-8。 我試過Byte []來進行字符串轉換,但它不起作用。以編程方式將txt文件從ANSI轉換爲UTF-8

+1

如果我找不到你,你應該在打開輸入流時使用UTF-8,比如'new InputStreamReader(inputStream,「UTF-8」);' – MByD 2011-05-31 20:09:44

+0

@MByD,非常感謝你的推薦,我試過了,但它對我來說並不奏效,結果總是如此。 – wlegend 2011-05-31 20:35:20

+0

大家好,我找到了答案,並感謝一個失敗的MByD,而不是使用UTF-8作爲編碼,我應該給輸入編碼至極「windows-1252」,現在noo更多的符號 – wlegend 2011-05-31 21:13:21

回答

6

使用打開decoding Reader像這樣的:

Reader reader = 
    new InputStreamReader(inputStream, Charset.forName(encodingName)); 

Exaclty其編碼你應該使用名稱取決於which "ANSI" encoding文本文件寫於你可以找到的Java 6 here支持的編碼清單。如果它是英文系統,它可能是windows-1252

將數據正確寫入數據庫取決於正確配置數據庫並(有時)爲JDBC驅動程序提供正確的配置。

您可以在herehere中閱讀有關字符編碼處理的更多信息。