2012-07-25 106 views
2

我想通過包含一些國際字符的Java JDBC將一些數據插入到mysql數據庫中。MySQL Java國際字符(UTF-8)編碼

INSERT INTO my_table (`name`, `lat`, `long`, `label`) VALUES('Ädelfors folkhögskola', '57.43611145019531', '15.19722175598145', 'Ädelfors folkhögskola') 

這個查詢工作完全正常,如果我直接使用它從mysqlworkbench,phpMyAdmin的等 但是當我與Java JDBC嘗試國際字符是完全亂碼

Ädelfors folkhögskola => ?��delfors folkh??gskola 

的解決方案,我已經嘗試過,直到現在包括

jdbc:mysql://server/database?characterEncoding=UTF-8 

Setting - Dfile.encoding=UTF-8 
Both my database and table are encoded as utf8 - default collation 

這是"show variables like '%char%'"

轉儲3210
character_set_client - utf8 

character_set_connection - utf8

character_set_database - utf8

character_set_filesystem - binary

character_set_results - utf8

character_set_server - latin1

character_set_system - utf8

character_sets_dir - /usr/share/mysql/charsets/

我一直在使用這兩種preparesStatements以及正常的聲明

我知道有很多類似的問題,我已經提到大部分,但可以找到解決的辦法嘗試。

關於環境的一些信息... OS - MAC OSX 10.6.8 IDE - NetBeans的

的MySQL 5.5.23在Ubuntu

+0

請檢查以下文章並查看接受的答案。我相信你需要將連接設置爲使用unicode。 http://stackoverflow.com/questions/8433293/how-can-i-insert-arabic-word-to-mysql-database-using-java – 2012-07-25 14:55:57

+0

我已經試過了,我忘了提及jdbc:mysql://服務器/數據庫?useUnicode = yes&characterEncoding = UTF-8 – 2012-07-25 16:12:55

+0

@PragatiSureka:你如何獲取數據?如果使用JSP,那麼什麼是編碼 – 2012-07-26 05:08:35

回答

0

運行如果您在Java源或屬性文件中鍵入查詢你已經使用了utf-8編輯器。
如果您正在使用eclipse(首選項>常規>工作區並設置文本編碼)