版權聲明:如有轉載請求,請注明出處:http://blog.csdn.Net/yzhz
環境:1、MySQL數據庫版本:MySQL4.1.72、mysql驅動程序: MySQL-connector-Java-3.1.73、環境:Windows平台4、安裝MySQL數據庫時指定character-set為gbk
遇到的問題: 采用jdbc訪問數據庫,jdbc的url: jdbc:MySQL://localhost:3306/club,讀寫數據庫顯示中文都正常。但在mysql的console上查詢,中文都顯示成?。 原因是:MySQL 4.1以上版本增加了幾個變量,默認的情況下character_set_client、character_set_connection、character_set_results 的值是latin1 character_set_clIEnt | latin1character_set_connection | latin1character_set_database | gbkcharacter_set_results | latin1character_set_server | gbkcharacter_set_system | utf8 所以在console看到的中文記錄為? 解決的方法是:啟動console的時候設置default-character-set MySQL -uuser -ppassWord --default-character-set=gbk test
character_set_clIEnt | gbkcharacter_set_connection | gbkcharacter_set_database | gbkcharacter_set_results | gbkcharacter_set_server | gbkcharacter_set_system | utf8
總結:1、MySQL4.1以上版本、MySQL JDBC Driver3.0.16以上版本,jdbc的url不用再帶上useUnicode=true&EncodingCharacter=GBK,jdbc驅動程序會在連接的時候自動檢測MySQL服務器的變量(character_set_server)指定的編碼,然後將Java Unicode string轉換為所指定的字符集發送給mySQL Server.2、MySQL4.1.7版本數據庫,character-set為gbk,如果console上看到亂碼,啟動console的時候帶上參數--default-character-set=gbk