mysql 用的 字符集 為utf8的 只能儲存三個位元組 而 表情是四個位元組 當把表情 儲存到資料庫 就會報錯,這時候 就需要一下的操作
方案一、
修改 字段 字符集
alter table `ben_review` change `reviewcontent` `reviewcontent` varchar( 255 ) character set utf8mb4 collate utf8mb4_estonian_ci not null ;
修改表 字符集
alter table 表名 default character set utf8mb4 collate utf8mb4_general_ci;
修改資料庫字符集
alter table 表名 default character set utf8mb4 collate utf8mb4_general_ci;
方案二 、
轉碼 表情
//表情包處理操作
function usertextencode($str))/i",function($str),$text); //將emoji的unicode留下,其他不動,這裡的正則比原答案增加了d,因為我發現我很多emoji實際上是\ud開頭的,反而暫時沒發現有\ue開頭。
return json_decode($text);
}
//解析表情包
function usertextdecode($str))/i",function($str),$text); //將兩條斜槓變成一條,其他不動
return json_decode($text);
}
mysql 插入Emoji表情報錯
incorrect string value xf0 x9f x98 x84 xf0 x9f 找了點資料發現utf 8編碼有可能是兩個 三個 四個位元組。emoji表情或者某些特殊字元是4個位元組,而mysql的utf8編碼最多3個位元組,所以資料插不進去。網上解決方式都是 改動mysql配置 1....
mysql 儲存emoji表情
phenomenon 當儲存帶emoji表情的資料時,mysql提示儲存失敗。solution 更改對應欄位的字符集 alter table xx modify columnremarkvarchar 256 character set utf8mb4 collate utf8mb4 unicode...
解決Mysql儲存微信表情時候的報錯問題
具體修改資料庫編碼的方法如下 window下 my.ini mysql default character set utf8mb4 mysqld character set server utf8mb4 collation server utf8mb4 bin linux下 my.cnf clien...