天天看點

MySQL中字元集 utf8mb4與utf8的差別

今早發現MySQL 中無法存儲emoji表情,查詢資料後發現是字元集的問題。

原因:emoji對應的Unicode編碼不在utf8對應的Unicode分組平面内,無法直接用MySQL的utf8存儲emoji編碼格式字元。

解決方法:将資料庫預設字元集由utf8 更改為utf8mb4,對應的表預設字元集也更改為utf8mb4。

從MySQL 5.5.3起,utf8mb4字元集每個字元最多使用四個位元組,并支援補充字元,而uft8字元每個字元最多使用三個位元組,如果遇到四位元組的字元就會出現錯誤了。

參考文章:

MySQL官網—utf8mb4

How to store emoji in a Rails app with a MySQL database