MySQL 4字節UTF8是MySQL數據庫支持的一種字符編碼,可以用于存儲世界上大部分語言所使用的字符。之前的MySQL UTF8編碼使用的是3個字節存儲,無法支持一些非常規字符,如表情符號等。
在MySQL 5.5.3之前,MySQL的UTF8編碼使用3個字節存儲,但這就意味著當存儲4字節的字符時,MySQL會失敗并返回一個錯誤。4字節字符是Unicode標準中的一種特殊字符,它們包含Emoji和其他非常規字符。
CREATE DATABASE db_name CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
MySQL 5.5.3引入了utf8mb4字符集,它可以存儲4字節的字符。utf8mb4實際上就是UTF-8編碼的超集,可以支持MySQL服務器和客戶端的完全互操作性,并且不需要特殊配置。
使用utf8mb4編碼存儲數據可以避免使用Emoji等特殊字符出現無法正確顯示的問題。使用utf8mb4只需要在創建數據庫時指定即可。
ALTER TABLE table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
如果你使用了MySQL 5.5.3版本之前的版本,那么請注意,如果從舊的UTF-8向新的UTF-8mb4轉換時超過了3個字節,請使用以下命令:
ALTER TABLE table_name MODIFY COLUMN column_name TEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
這個命令會強制將列的字符集更改為utf8mb4編碼,同時也會將現有的3字節UTF-8數據轉換為4字節的形式。