mysql存带表情的微信昵称_mysql保存emoji表情(微信开发用户昵称..)

mysql保存emoji表情(微信开发用户昵称..)

2020-05-14 01:40阅读:

93386d26ee51614e2ae0331135273ce5.png

河洛伊哥

赵琪龙:在路上.........何惧?何愁?何忧?

关注

使用mysql数据库的时候,如果字符集是UTF-8并且在java服务器上,当存储emoji表情的时候,会抛出以上异常(比如微信开发获取用户昵称,有的用户的昵称用的是emoji的图像)

这是由于字符集不支持的异常,因为utf-8编码有可能是两个,三个,四个字节,其中Emoji表情是四个字节,而mysql的utf-8编码最多三个字节,所以导致数据插不进去。

解决方式:

一.从数据库层面进行解决(mysql支持utf8mb4的版本是5.5.3+,必须升级到较新版本)

注意:

(1.修改database,table,column字符集

ALTER DATABASE database_name CHARACTER SET = utf8mb4 COLLATE =

utf8mb4_unicode_ci;

ALTER TABLE table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE

utf8mb4_unicode_ci;

ALTER TABLE table_name CHANGE column_name VARCHAR(191) CHARACTER

SET utf8mb4 COLLATE utf8mb4_unicode_ci;

(2.修改mysql配置文件my.cnf(window为my.ini)

[client]

default-character-set = utf8mb4

[mysql]

default-character-set = utf8mb4

[mysqld]

character-set-client-handshake = FALSE

character-set-server = utf8mb4

collation-server = utf8mb4_unicode_ci

init_connect='SET NAMES utf8mb4'

(3.用的是java服务器,升级或者确保mysql connection版本高于5.1.13否则仍然不能试用utf8mb4

(4.服务器端的db配置文件

jdbc.driverClassName=com.mysql.jdbc.Dri

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值