2011-12-05 77 views
0

我得到這個字符串,它包含webservice的這個子字符串gratuit.AFLĂ MAI MULTEDe。當我把它保存在我的本地(窗口)數據的基礎上工作正常,但是當我嘗試保存在服務器上,當它被部署在Linux上,我得到以下錯誤:linux和mysql的字符編碼問題

Incorrect string value: '\xC4\x82 MAI...' for column 'description' at row 1 

我使用Hibernate 3.3與MySQL 5.5(包括windows和linux)和數據庫使用默認編碼(latin1)。

我已經嘗試在JAVA_OPT中設置-Dfile.encoding=UTF8但沒有工作,我認爲它是os相關的問題。

有什麼建議嗎?

+0

什麼是列「說明」的整理? – number5

+0

'letin1_swedish_ci' –

回答

0

(現在我一般都會用UTF-8做所有的事情。)可以設置編碼的點很長。從Web服務中,你可能會得到UTF-8中的XML。這會自動正確讀取,因爲XML處理嚴格的編碼。

在數據庫級別上,數據庫和表和字段具有默認和顯式編碼。此外,連接url應該參數化爲正確的編碼。

該錯誤消息顯示了該重音字符的UTF-8字節A,我想它在Latin1中不可用。 對於MySQL連接字符串可能看起來像:

jdbc:mysql://localhost/MYDB?useUnicode=true&characterEncoding=UTF-8 
+0

仍然不能正常工作 –

+0

您必須爲您的數據庫使用utf8整理。然後,按照答案的建議在連接字符串中指定編碼。 – dodecaplex