MySQL插入「 」字時報錯,請問是什麼原因?
01-15
如題,MySQL資料庫字符集排序規則已設置為UTF8,但是某些生僻字錄入資料庫時依然報「類似Incorrect string value: "xA9xC1xF7xB6「這樣的錯誤
我的MySQL版本是5.6.17。show variables like "character%"show variables like "collation%" --------------------------------------------------我是化麗的分割線--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------現在確定知乎的資料庫也存在這個問題,我問題中的這個字就沒有正常顯示出來,現在我把這個字的圖片貼上來: 詳情鏈接: 的解釋| 的意思
求MySQL大神解答~
字太過生僻,以至於使用了 4 個 byte 來編碼(你也看到了)。因為 UTF-8 本質上是變長的,不同字元分別使用 1 個、2 個、3 個 或 4 個 byte 來編碼。而 MySQL 的 utf8 是不支持 4 個 byte 的字元的,mysql.com 的原文如下:
The utf8 character set is the same in MySQL 5.6 as before 5.6 and has exactly the same characteristics:
No support for supplementary characters (BMP characters only).
A maximum of three bytes per multibyte character.
解決方案:使用 utf8mb4 而不是 utf8,參見 http://dev.mysql.com/doc/refman/5.6/en/charset-unicode-utf8mb4.html。
推薦閱讀:
※CAP理論和NoSQL的疑問?
※主流資料庫哪個最好?哪個現在最火?
※2017年資料庫(大數據)領域有哪些進展?
※軟體行業有哪些方向值得花一生的時間去鑽研?
※如何評價OceanBase近期強大的宣傳攻勢?