2010-06-23 61 views

回答

3

rs.getString()根據定義返回一個Unicode字符串。

如果你得到了錯位的字符,你必須配置你的數據庫驅動程序使用正確的編碼來連接數據庫。

2

只讀字符串。 Java中的所有字符串都是unicode。如果您有任何問題,那麼:

  • 這可能是一個問題的診斷 - 你可能會讀取正確的數據出來ResultSet,但顯示它,所以它看起來你還沒有看過正常
  • 這可能是一個配置問題 - 連接到數據庫時可能需要做某些事情,以確定使用的編碼是否正確
  • 這可能是數據庫問題 - 數據庫可能未配置爲存儲完整Unicode數據
  • 它可能是數據庫模式問題 - t您正在使用的特定列可能使用不支持完整Unicode的列類型進行配置
  • 這可能是數據中的問題,例如,與另一個程序錯誤地提交數據。

我以前見過所有這些。您應該使用詳細的日誌記錄(例如,以十六進制表示的單個字符)來確定您是否正確獲取了數據 - 這會告訴您接下來要查看的內容。

1

如果使用數據源(F.E. com.mysql.jdbc.jdbc2.optional.MysqlDataSource)可以直接設置信道編碼爲UTF8像ds.setEncoding("UTF-8")