插入Mysql數據庫是,字符utf8編碼超過3位時的錯誤以及解決
Incorrect string value: '\xF0\xA1\xBF\xA8\xE9\x82...' for column 'last_name'
這個問題出在mysql上,mysql如果設置編碼集為utf8那麼它最多默認只能支持到3個字節的UTF-8編碼,
而4個字節的UTF-8字符還是存在的,這樣一來如果你建表的時候用的utf8字符集出異常就理所當然了。
之前遇到過兩次
短信備份的時候,用戶短信內容裡面的一些特殊字符編碼會是四位,從ios導入的聯系人,lastname裡面也可能會有此類字符。
解決方法很簡單,修改字段或者表的字符集為utf8mb4。
alter table fnbl_pim_contact_1 modify column `last_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL;
但需要注意的是,字符集utf8mb4在mysql 5.5.3之後才能支持。。。。。。
如下短信中的特殊字符,編碼就會達到4位。