欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

關(guān)于MySQL實(shí)現(xiàn)指定編碼遇到的坑

 更新時(shí)間:2021年10月16日 10:29:28   作者:Jae1995  
這篇文章主要介紹了一個(gè)關(guān)于MySQL指定編碼實(shí)現(xiàn)的小坑,文中大家需要注意如果有需要保存emoji符號的字段,記得一定要指定編碼為 utf8mb4,感興趣的朋友一起看看吧

寫在前面

環(huán)境:MySQL5.7+,MySQL數(shù)據(jù)庫字符編碼實(shí)現(xiàn)為utf8,表也為utf8

場景:微信授權(quán)獲取用戶信息(包括昵稱)并保存到數(shù)據(jù)庫,有的用戶成功了,少數(shù)用戶卻失敗了

那么為什么會(huì)失敗呢?

貼上報(bào)錯(cuò)日志

Incorrect string value: '\xF0\x9F\x98\x98\xF0\x9F...' for column 'nickname' at row 1

是因?yàn)槭〉挠脩粑⑿抨欠Q中帶有emoji符號導(dǎo)致的

剖析:

MySQL支持多種字符編碼集,如UTF-8、GB2312、GBK等

可以通過 SHOW CHARSET 命令查看。

通常我們會(huì)建議使用 UTF-8 作為默認(rèn)的字符編碼方式。

從上圖我們可以看到,MySQL數(shù)據(jù)庫有兩套 UTF-8 編碼實(shí)現(xiàn)。

  • utf8:utf8 編碼只支持三個(gè)字節(jié)以內(nèi)。在 utf8 編碼中,中文是占了3個(gè)字節(jié),其他的英文、數(shù)字、符號都是占1個(gè)字節(jié)。但是emoji符號占4個(gè)字節(jié),一些比較復(fù)雜的文字、繁體字也是占4個(gè)字節(jié)。
  • utf8mb4:UTF-8編碼的完整實(shí)現(xiàn)。最多可支持4個(gè)字節(jié),所以,可以用來存儲(chǔ)emoji符號。

查閱資料,官方解釋:

最后

Tips:如果有需要保存emoji符號的字段,記得一定要指定編碼為 utf8mb4 。

到此這篇關(guān)于一個(gè)關(guān)于MySQL指定編碼實(shí)現(xiàn)的小坑的文章就介紹到這了,更多相關(guān)MySQL指定編碼內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論