MySql字符集導致特殊字符保存出錯問題處理
最近在開發中遇到Mysql數據庫的特殊字符保存出錯問題,在保存用戶昵稱時部分含有特殊字符的昵稱會報錯,Incorrect string value: '\xFA\xD5 \xCB\xAE\xD5...' for column 'Nickname',經過查閱資料發現Mysql的utf8不是真正的utf8,只支持最多3個字節的字符,而昵稱中有些特殊字符占四個字節,因此報錯。所以如果要儲存所有字符的話,需要將Mysql默認的utf8字符集改為utf8mb4,Mysql字符集修改包括數據庫字符集和表字符集的修改,修改腳本如下:
-- 先關閉外鍵檢查 SET FOREIGN_KEY_CHECKS=0; -- 修改數據庫字符集 ALTER DATABASE MyDB DEFAULT CHARACTER SET utf8mb4; -- 修改表的字符集 ALTER TABLE `MyTable` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; -- 恢復外鍵檢查 SET FOREIGN_KEY_CHECKS=1;

浙公網安備 33010602011771號