mysql 微信用户昵称emoji 完整保存
2017-02-18 21:06
225 查看
微信用户昵称现在丰富多样,一些个性的名称中经常包含有特殊字符,以及emoji表情。起先,我总以为mysql只能保存纯文本数据。但其实mysql(5.7版本)已非常强大,完整保存微信用户昵称(emoji表情)已不在话下。
起先,我的项目是无法保存这些含有emoji表情的昵称。为了鲜明的对比前后我做出的调整,先来看看之前的状况。
字段类型为utf8
jdbc连接使用的编码格式也为utf8
这昵称中有emoji表情的小眼睛在瞅着我。
接下来,我们看一下可以保存后的调整。
注意改成了“utf8mb4”,不再是utf8,主要是支持的字节数不同。
MySQL在5.5.3版本之后增加了这个utf8mb4的编码,mb4就是most bytes 4的意思,专门用来兼容四字节的unicode。其实,utf8mb4是utf8的超集,理论上原来使用utf8,然后将字符集修改为utf8mb4,也会不会对已有的utf8编码读取产生任何问题。当然,为了节省空间,一般情况下使用utf8也就够了。
想要了解的更多,请参照浅谈MySQL中utf8和utf8mb4的区别
网页上效果如下,小眼睛可以正常显示:
关注 沉默王二 公众号,期待与你心灵上的交流。
起先,我的项目是无法保存这些含有emoji表情的昵称。为了鲜明的对比前后我做出的调整,先来看看之前的状况。
1.mysql表字段定义
`third_name` varchar(255) CHARACTER SET utf8 DEFAULT NULL COMMENT '用户第三方账号昵称',
字段类型为utf8
2.mysql数据库连接字符串
<!-- Connection Info --> <property name="url" value="${url}?useUnicode=true&characterEncoding=utf8&" />
jdbc连接使用的编码格式也为utf8
3.微信昵称
这昵称中有emoji表情的小眼睛在瞅着我。
4.保存出错
Caused by: java.sql.SQLException: Incorrect string value: '\xF0\x9F\x91\x80\xE5\xBC...' for column 'third_name' at row 1 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数据库连接字符串去掉编码方式
<!-- Connection Info --> <property name="url" value="${url}" />
③.保存后效果
使用Navicat查看的效果如下:网页上效果如下,小眼睛可以正常显示:
关注 沉默王二 公众号,期待与你心灵上的交流。
相关文章推荐
- mysql 微信用户昵称emoji 完整保存
- mysql保存emoji表情(微信开发用户昵称..)
- mysql数据库:微信用户昵称emoji 怎么保存到数据库中。
- mysql保存emoji表情(微信开发用户昵称..)
- 微信开放接口获取用户昵称保存到MySQL中为空白
- 微信jssdk获取用户昵称,含emoji符号保存
- PDO保存带符号的微信昵称到MySQL
- mysql保存微信昵称特殊字符
- php解决微信开发中用户昵称中的特殊字符与emoji表情写入mysql错误的问题
- mysql保存微信昵称特殊字符的方法
- 微信昵称有特殊符号怎么保存到mysql库里?
- 关于授权登录后将微信昵称保存到mysql问题
- mysql保存不了微信表情符emoji问题解决方案
- Android 微信登录昵称乱码问题,及获取微信用户信息
- 保存mysql用户的登录信息到~.my.cnf文件;用于方便登录操作。
- 解决微信安卓SDK获取用户昵称时中文乱码的问题
- mysql 保存emoji 4字节宽度字符串
- java ipone 微信昵称emoji表情保存失败 无法存入数据库
- 2015-12-12 java hibernate 微信表情昵称保存