使用jdbc查詢防止出現中文亂碼的方法


在使用mysql創建數據庫及表格,在navicat中可以正常查詢出中文,但使用jdbc查詢的結果中,中文為亂碼。

網上查到資料,為了能夠徹底一勞永逸的解決這個問題,需要修改mysql下配置文件my.in

打開cmd  使用   mysql -uroot -p   登錄mysql之后,使用這條語句查詢數據庫編碼 show variables like '%char%';

查詢結果編碼有的為lan1編碼 有的是utf8編碼

網上一些修改方法 是在這三個位置添加相關語句

經實驗還是有中文亂碼出現

再次使用show variables like '%char%';  查詢,發現字符編碼變為utf8 但是連接編碼set_character_connection和其他幾個還是lan1編碼

后來在my.in中[mysqld]標簽最下面發現這樣一段

## UTF 8 Settings
#init_connect=\'SET NAMES utf8\'
#collation_server=utf8_unicode_ci
#character_set_server=utf8
#skip-character-set-client-handshake
#character_sets-dir="D:/xampp/mysql/share/charsets"

前面的井號#表示這是一段被注釋掉的代碼  猜測是用來設置utf8編碼的

而且character_set_server=utf8這一句與網上方法相同,但網上方法並沒有完全改變所有編碼格式

去掉這段代碼前面井號如下:

## UTF 8 Settings
init_connect=\'SET NAMES utf8\'
collation_server=utf8_unicode_ci
character_set_server=utf8
skip-character-set-client-handshake
character_sets-dir="D:/xampp/mysql/share/charsets"

使用show variables like '%char%'; 結果如下:

重新創建數據庫和表,jdbc查詢測試,中文正確顯示。

此外應當注意,jdbc的url后面應當指明編碼格式 如下:

jdbc:mysql://localhost:3306/(這里寫數據庫名,不加括號)?useUnicode=true&characterEncoding=UTF-8。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM