解決Mysql字元編碼問題

來源:互聯網
上載者:User

對於大家熟知的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

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.