微信用戶昵稱現在豐富多樣,一些個性的名稱中經常包含有特殊字符,以及emoji表情。起先,我總以為mysql只能保存純文本數據。但其實mysql(5.7版本)已非常強大,完整保存微信用戶昵稱(emoji表情)已不在話下。
起先,我的項目是無法保存這些含有emoji表情的昵稱。為了鮮明的對比前后我做出的調整,先來看看之前的狀況。
MySQL數據庫中添加圖片。1.mysql表字段定義
`third_name` varchar(255) CHARACTER SET utf8 DEFAULT NULL COMMENT ‘用戶第三方賬號昵稱‘,
字段類型為utf8
微信昵稱改emoji。2.mysql數據庫連接字符串
jdbc連接使用的編碼格式也為utf8
3.微信昵稱
好看的emoji表情微信名?這昵稱中有emoji表情的小眼睛在瞅著我。
4.保存出錯
Caused by: java.sql.SQLException: Incorrect string value: ‘\xF0\x9F\x91\x80\xE5\xBC...‘ for column ‘third_name‘ at row 1
emoji大全復制粘貼,at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1073)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3609)
接下來,我們看一下可以保存后的調整。
微信名字不能用表情了、①、mysql表字段定義為utf8mb4
`third_name` varchar(255) CHARACTER SET utf8mb4 DEFAULT NULL COMMENT ‘用戶第三方賬號昵稱‘,
注意改成了“utf8mb4”,不再是utf8,主要是支持的字節數不同。
MySQL在5.5.3版本之后增加了這個utf8mb4的編碼,mb4就是most bytes 4的意思,專門用來兼容四字節的unicode。其實,utf8mb4是utf8的超集,理論上原來使用utf8,然后將字符集修改為utf8mb4,也會不會對已有的utf8編碼讀取產生任何問題。當然,為了節省空間,一般情況下使用utf8也就夠了。
想要了解的更多,請參照淺談MySQL中utf8和utf8mb4的區別
②.mysql數據庫連接字符串去掉編碼方式
③.保存后效果
使用Navicat查看的效果如下:
網頁上效果如下,小眼睛可以正常顯示:
關注 沉默王二 公眾號,期待與你心靈上的交流。
版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态