1. 程式人生 > >MySQL儲存Emoji表情符號問題及解決方案

MySQL儲存Emoji表情符號問題及解決方案

emoji就是表情符號;詞義來自日語(えもじ,e-moji,moji在日語中的含義是字元),現已普遍應用於手機簡訊和網路聊天軟體,是很流行使用的一種表情字元。


MYSQL 5.5 之前, UTF8/utf8mb3 編碼只能儲存最大3個位元組的字元, 從MYSQL5.5開始,可支援4個位元組UTF編碼字元,但要特殊標記,即顯式定義表或欄位為utf8mb4編碼型別。如果表或欄位已經定義為utf8/utf8mb3,可使用alter table語句將utf8/utf8mb3升級為utf8mb4。
    
對應語句如下:
    ALTER TABLE app_message MODIFY title  VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '標題';

說明:

1.對於BMP(Basic Multilingual Plane)字元,utf8跟utf8mb4具有相同的儲存特性:使用相同的編碼和編碼值,以同樣的長度儲存。

2.將表或列的字元編碼型別由utf8升級成utf8mb4時,不需要轉換儲存的字元資料,因此也不會丟失資料

utf8mb4的詳細說明鹼MySQL官方文件:

http://dev.mysql.com/doc/refman/5.6/en/charset-unicode-utf8mb4.html