2012-09-06 38 views
1

im從獲取數據時出現問題Mysql 5.1使用JDBC(mysql-connector-java-5.1.18-bin.jar)。如何更改JDBC編碼以支持法語重音字符

我INSERT INTO說法是這樣的:

INSERT INTO Categories VALUES ('01','Matières premières'); 

Netbeans的端子輸出和Swing界面是這樣的:

MatiŠres premiŠres 

我認爲我需要指定編碼參數。

你能否請幫忙。

p.s:操作系統是Windows 7法語。

這是我的網址在課堂上連接的數據庫:

DriverManager.getConnection("jdbc:mysql://X.X.X.X:XXXX/XXXX?useUnicode=yes&characterEncoding=UTF-8","XXXX","XXXX"); 
+2

最大的問題可能不是在JDBC,但在數據庫中。什麼是你的表和連接的編碼?我建議你將它們設置爲「utf8-general-ci」。 –

+0

我不知道如何設置jdbc來支持法語重音字符,可以幫助一個代碼片段,謝謝你。 –

+0

我們正在討論數據庫,而不是jdbc。您通常在創建表格時設置表格的排序規則(您可以使用任何管理工具對其進行更改),並且可以更改用於與此工具連接的排序規則。 –

回答

1

兩個解決方案:

  • 的sanest之一:設置你的表,因爲歸類「UTF8 - 通用詞」使用並將mysql設置爲使用相同的排序規則進行連接。所以你不會有任何問題,並且在使用jdbc連接時不需要指定任何東西。

  • 另一個,現在幾乎不可接受但可能:確定什麼是你的表的排序規則,並用它來配置你的JDBC連接,如下所述:http://dev.mysql.com/doc/refman/5.0/en/connector-j-reference-charsets.html。但你必須知道你的表的編碼是什麼(因爲你不知道它,如果你在法國它可能是Latin1)。

要確定或更改表的編碼你可以使用任何MySQL管理工具。確保表格和連接一致。

+0

*整理*是無關緊要的,除非MySQL(合理)要求排序規則適用於相關字符串的*字符集/編碼*(我認爲這就是您的意思)。混淆兩者只會導致更多混淆(你甚至在[你的評論]中將'utf8_general_ci' - 註釋強調爲下劃線,而不是連字符]作爲*編碼*(http://stackoverflow.com/questions/12300813/how-以上)來改變jdbc編碼到支持法語重音字符#comment16503095_12300813)。 – eggyal

+0

@eggyal你能否做出更清晰的答案?如果你不那麼困惑,我會很樂意刪除我的。 –

+0

請幫忙,提供的答案太模糊。 –

0

你必須編碼設置爲與System.setProperty ISO-8859-1( 「file.encoding的」, 「ISO-8859-1」)