微信用户昵称现在丰富多样,一些个性的名称中经常包含有特殊字符,以及emoji表情。起先,我总以为MySQL只能保存纯文本数据。但其实mysql(5.7版本)已非常强大,完整保存微信用户昵称(emoji表情)已不在话下。

起先,我的项目是无法保存这些含有emoji表情的昵称。为了鲜明的对比前后我做出的调整,先来看看之前的状况。

1.mysql表字段定义

`third_name` varchar(255) CHARACTER SET utf8 DEFAULT NULL COMMENT '用户第三方账号昵称',

字段类型为utf8

2.mysql数据库连接字符串

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 1at 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数据库连接字符串去掉编码方式,假如不行,那就把编码改成utf8mb4也可以的

③.保存后效果

使用Navicat查看的效果如下:

网页上效果如下,小眼睛可以正常显示:

微信昵称 mysql_mysql 微信用户昵称emoji 完整保存相关推荐

  1. 微信昵称乱码 mysql_微信网页开发获取用户昵称乱码 微信昵称包含emoji表情乱码的解决方案...

    微信网页开发获取用户昵称乱码 微信昵称包含emoji表情乱码的解决方案如下: 问题产生原因:由于数据库及属性一致设为utf8,而utf8只支持1-3个字节.当用户昵称为emoji表情时,获取用户基本信 ...

  2. mysql存储用户昵称_mysql 微信用户昵称 emoji 完整保存 - 人人都是架构师

    微信用户昵称现在丰富多样,一些个性的名称中经常包含有特殊字符,以及emoji表情.起先,我总以为mysql只能保存纯文本数据.但其实mysql(5.7版本)已非常强大,完整保存微信用户昵称(emoji ...

  3. mysql 微信用户昵称 emoji 完整保存

    微信用户昵称现在丰富多样,一些个性的名称中经常包含有特殊字符,以及emoji表情.起先,我总以为mysql只能保存纯文本数据.但其实mysql(5.7版本)已非常强大,完整保存微信用户昵称(emoji ...

  4. mysql 微信昵称怎么保存_mysql 微信用户昵称emoji 完整保存

    微信用户昵称现在丰富多样,一些个性的名称中经常包含有特殊字符,以及emoji表情.起先,我总以为mysql只能保存纯文本数据.但其实mysql(5.7版本)已非常强大,完整保存微信用户昵称(emoji ...

  5. 【微信小程序】微信小程序开发--用户昵称中带有emoji表情的处理方法

    刚开始写小程序,获取客户昵称,后来发现用户昵称是可以为emoji表情的,而Mysql数据库中是不支持直接将emoji表情直接存入数据库的,后来在网站上找了一个方法将所有的昵称转变为Unicode编码存 ...

  6. 微信开放接口获取用户昵称保存到MySQL中为空白

    微信昵称中包含emoji表情标签,某些标签是使用了4字节编码的UTF8. 而大多数MySQL数据库现在使用的是3字节UTF8编码,这样会导致保存为空,且不会提示失败. 解决方法有2个,一个是升级到My ...

  7. 微信小程序获取用户昵称中含有emoj表情,后端处理方式以及回显。

    1.在做微信小程序的时候遇到了用户昵称中含有emoj表情无法入库的情况. ### Cause: java.sql.SQLException: Incorrect string value: '\xF0 ...

  8. 微信小程序获取用户昵称和头像

    getUserInfo.js Page({data: {userInfo: {},hasUserInfo: false,canIUseGetUserProfile: false,},onLoad() ...

  9. 微信网页授权获取用户昵称中文乱码

    微信默认编码ISO-8859-1,需要转换 new String(userinfo.getBytes("ISO-8859-1"), "UTF-8"): 欢迎关注 ...

最新文章

  1. 短 URL 服务,怎么设计与实现?
  2. Deep Learning 教程(斯坦福深度学习研究团队)
  3. 老王Python-进阶篇4-面向对象第三节
  4. c# 找出目录下的所有子目录_第9期:Linux下文件系统满的处理
  5. Linux——Linux C语言编程基础知识
  6. idea 类注释,方法注释设置
  7. 代码区,初始化全局数据区,BSS,堆区,栈区,程序环境变量区简介
  8. xcode windows版安装使用教程
  9. 深度学习-从感知器到LSTM(目的是处理序列问题)
  10. vue 异步更新队列 Vue.nextTick(callback)
  11. Java整人程序-电脑关机
  12. GO GOPROXY代理设置
  13. easyexcel1.0导出excel测试案例
  14. openwrt 锐捷 单线多拨
  15. 地税局工资管理系统(论文+设计)新
  16. Python基础操作(2)
  17. 桂电计算机系入学怎么分班,桂电研究生-()学期课程总表.doc
  18. OCI跨租户(Tenancy)Object Storage文件复制
  19. 7个国外社交网络用户数据情况
  20. win10 JDK-8u231安装点击下一步没反应 解决方法-JDK安装记录

热门文章

  1. 计算机毕业设计ssm基于java的仓储信息管理系统o9ypl系统+程序+源码+lw+远程部署
  2. 性能测试混合场景设计
  3. 关于小程序开关灯的实现
  4. csgo星空天空代码_CSGO控制台命令分享 上角显示伤害信息开启方法
  5. 离职前,该不该把所有的不满告诉领导?
  6. PY32F002A开发板,32位 M0内核,最高20KB的flash,3KB的SRAM
  7. 字符串换行拼接linux
  8. JVM的私房笔记(一)类加载机制与类加载器 by 葵鱼
  9. 牛客网 2018校招真题 网易 骰子游戏
  10. Kaggle入门——电影案例数据分析