何為 utf8mb4
:
- MySQL在5.5.3版本之後增加了這個utf8mb4的編碼,mb4就是most bytes 4的意思,專門用來相容四位元組的unicode。其實,utf8mb4是utf8的超集
解決方法:
- 檢視編碼字符集:
SHOW VARIABLES WHERE Variable_name LIKE 'character\_set\_%' OR Variable_name LIKE 'collation%';
- 如結果為下圖所示,則『引起儲存不了特殊符號的原因可能與本文不同,這篇文章可能解決不了您的問題』;
- 如若結果中的
value
欄位與上圖有出入,請繼續閱讀本文;
- 修改資料庫編碼:
ALTER DATABASE database CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;
;
- 修改資料表編碼:
ALTER TABLE table CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
;
- 修改表欄位編碼為:
ALTER TABLE table CHANGE column column VARCHAR(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
;
- 編輯
my.ini
檔案,新增或修改如下內容:[client] default-character-set = utf8mb4 [mysql] default-character-set = utf8mb4 [mysqld] character-set-client-handshake = FALSE character-set-server = utf8mb4 collation-server = utf8mb4_unicode_ci init_connect='SET NAMES utf8mb4'
- 重啟
Mysql
:service mysqld restart
;
- 再次檢視編碼字符集,如果與上文圖中結果一致,則大功告成~