mysql之字元編碼問題

來源:互聯網
上載者:User

標籤:

mysql編碼分為服務端編碼和用戶端編碼兩大類
欄位編碼, 表編碼, 資料庫編碼這些編碼都屬於服務端編碼,服務端編碼決定你可以存哪些字元以及這些字元要哪種規則排序.欄位編碼優先順序最高. 

你插入用什麼碼屬於用戶端編碼, 你用什麼用戶端編碼都無所謂,只要插入前加個命令set names xxx 就可以了,mysql都會給你轉換,你考慮只是用戶端編碼和服務端編碼大小集問題,是否存在映射.(比如服務端編碼為GB2312, 用戶端編碼為BIG5, mysql肯定轉換不了)
如果要正常顯示字元,用戶端編碼xxx要和你應用程式的環境編碼相同, 否則會無法正常顯示(出現亂碼), 這是mysql新使用者最大的困擾.

 

問:你所說的mysql都會去轉換是什麼意思?比如我用戶端set names ‘utf8‘,表編碼為gb2312,這樣是不會被正確轉換的吧?

答:他會轉換啊, 但如果字元無法映射, 他也轉換不了, 只能用?代替或省略, 如用戶端utf8中的繁體字, 是存不到編碼為gb2312的欄位裡.
set names xxx 好比告訴mysql伺服器: "我這邊的編碼為xxx, 請幫忙幫我轉換一下編碼"
所以set names xxx很重要, 你不能選錯, 一定要和你應用程式的字元環境相同. 

mysql之字元編碼問題

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

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.