對於大家熟知的mysql資料庫,是不是中文字元編碼的問題一直困繞著你?
本文以mysql5.5舉例,安裝方法在此慮過,只說一點:為了程式順利插入資料到資料庫而不出現字元問題,一般都設定mysql編碼為utf8編碼。然而在命令列模式往往會出現字元編碼問題:
1)如在命令列模式下,直接插入中文,插入失敗一)
650) this.width=650;" src="http://www.bkjia.com/uploads/allimg/131228/22531G237-0.png" border="0" alt="" />
圖一不正確的字串值)
2)用程式如Java)插入資料成功,使用navicate工具顯示是中文,即便是mysql Workbench工具查詢依然是中文二),在命令列模式查詢的結果卻顯示是亂碼三)
650) this.width=650;" src="http://www.bkjia.com/uploads/allimg/131228/22531Gc3-1.png" border="0" alt="" />
圖二顯示中文)
650) this.width=650;" src="http://www.bkjia.com/uploads/allimg/131228/22531K106-2.png" border="0" alt="" />
圖三有資料,卻顯示亂碼)
關於解決方案參看以下連結:
“花飛蝴蝶” 部落格,http://jinyabo.blog.51cto.com/3411101/1186030
但是有一個問題,四
聲明:因為已經進入,所以無需再次進行驗證
650) this.width=650;" src="http://www.bkjia.com/uploads/allimg/131228/22531IL9-3.png" border="0" alt="" />
圖四設定失敗)
這時候,只好到my.ini檔案查看,關鍵看兩處五)
1)default-character-set=utf8
預設編碼設定,一般應與作業系統編碼一致)
修改成default-character-set=gbk)gb18030不行)
2)character-set-server=utf8服務端編碼設定)
預設不需要改,但如果不是utf8,建議改成utf8)
650) this.width=650;" src="http://www.bkjia.com/uploads/allimg/131228/22531MF1-4.png" border="0" alt="" />
圖五編碼)
然後再次進入命令列模式,執行查詢六)
650) this.width=650;" src="http://www.bkjia.com/uploads/allimg/131228/22531G547-5.png" border="0" alt="" />
圖六查詢成功)
心得:可以把default-character-set理解成用戶端,character-set-server理解成服務端。用戶端與服務端編碼一致當然是最佳拍檔!總之要多觀察,多研究設定檔。這類問題不一定每次都見到,而一旦出現,便是讓人很撓頭。比如我之前每次都是utf8安裝,用了三年,中文字元插入也沒問題,唯獨這次,換成64位作業系統後,出現了這個問題。問題出現,可以google,可以百度,然而不一定是你想要的答案,那就自己研究吧,肯定可以解決!
感謝:花飛蝴蝶的《關於MySQL資料庫亂碼的問題總結》文章
本文出自 “IT旅行者” 部落格,請務必保留此出處http://fylxopensource.blog.51cto.com/1328715/1188669