2012-10-26 13 views
-1

如果我在我的mysql數據庫中存儲了像日文,希臘文,中文,韓文等特殊字符,我將抓取的Java String數據是否完整?Java String - 從mysql獲取其他語言字符 - 數據是否完整?

要清楚我的問題是將我在mysql中完全取出,如果我將它們存儲在Java字符串中的特殊字符,並且將我能夠在字符的形式顯示出來,當我使用他們的文本組件,如JEditorPane中

 String data; 
    ResultSet r = sabiNa.executeQuery(); 
    while(r.next()) { 
     data = r.getString("data"); 
    } 
+0

這大概是一個關於Java的支持Unicode字符的問題嗎? –

+0

編輯了這個問題。是的,它是關於Unicode字符 – Marl

回答

1

Java能夠存儲所有有效的Unicode文本。它在內部使用UTF-16。

如果您正確配置整個數據路徑,所有文本將被保留。您需要確保:

  • 正確的字符串到達​​Java(在Web應用程序中,正在提交表單的字符編碼)。
  • Java知道它應該以UTF-8與數據庫交談,並且數據庫知道它應該通過連接期待UTF-8。您在設置數據庫連接時確保這一點。
  • 數據在數據庫中以UTF-8存儲。

注意,[MySQL的文檔】權利要求 UTF-8是不能存儲的基本多語種平面以外的字符(所有「正常」的字符位於內BMP)的。 UTF-8本身完全能夠存儲所有的Unicode字符,數據庫也應該能夠對這些字符進行編碼。

Java本身是好的 - 只記得一些罕見的Unicode字符實際上是兩個字符在Java中(稱爲surrogate pair)。

+0

謝謝!這回答了我的問題。 – Marl