1、在做微信小程序的时候遇到了用户昵称中含有emoj表情无法入库的情况。

### Cause: java.sql.SQLException: Incorrect string value: '\xF0\x9F\x98\x80' for column 'nick' at row 1
; uncategorized SQLException for SQL []; SQL state [HY000]; error code [1366]; Incorrect string value: '\xF0\x9F\x98\x80' for column 'nick' at row 1; nested exception is java.sql.SQLException: Incorrect string value: '\xF0\x9F\x98\x80' for column 'nick' at row 1

2、错误很明显,用户昵称入库失败,马上想到可能是特殊字符或者表情,首先解决报错,保证流程正常,就是需要把用户昵称中的emoj表情替换掉。

//替换emoj
"??1".replaceAll("[^\\u0000-\\uFFFF]", "?");

3、进一步解决问题,对用户昵称进行编码存库,然后前端获取昵称的时候进行解码,这样小程序可以完整的显示用户昵称。

try {System.out.println(Base64.encodeBase64String("?".getBytes("utf-8")));} catch (UnsupportedEncodingException e1) {}String nickname = "8J+NiQ==";try {nickname = new String(Base64.decodeBase64(nickname.getBytes()), "utf-8");System.out.println(nickname);} catch (UnsupportedEncodingException e) {}

4、这样存在一个问题,就是对所有昵称进行编码之后,后台数据库存储的用户昵称都是编码后的字符,看起很怪。

5、可以通过设置涉及字段的字符编码,保证这个字段可以存储emoj表情。

MySQL在5.5.3之后增加了这个utf8mb4的编码,mb4就是most bytes 4的意思,专门用来兼容四字节的unicode。

将nick字段编码字符集 设置为utf8mb4,排序规则utf8mb4_general_ci,这样就可以插入emoj表情,有说法需要重启,我测试的时候不需要重启,设置之后可能还会出现插入错误,需要在配置文件中配置如下的东西。

druid连接池配置如下

<property name="connectionInitSqls" value="set names utf8mb4;"/>

BoneCP连接池配置如下

  <property name="initSQL" value="set names utf8mb4;"/>

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

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

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

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

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

  3. 微信小程序 获取用户昵称 头像 性别...『并解决获取的头像模糊问题』

    上代码 <button open-type="getUserInfo" bindgetuserinfo="getUserInfomation">获取 ...

  4. 微信小程序获取用户手机号存数据库,前后端都有《Java后台版 》

    开发这个功能的时候走了很多弯路磨了很多时间,我发一下我自己用的来帮助大家 流程图 前端 index.wxml <view>我的首页内容</view><button cla ...

  5. 微信小程序获取用户信息-头像、昵称......

    微信小程序获取用户信息-头像.昵称等,并出现弹窗提示授权 目录 微信小程序获取用户信息-头像.昵称等,并出现弹窗提示授权 1.wx.getUserProfile文档 2.代码演示 3.演示过程(图示) ...

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

    微信小程序获取头像昵称问题解决 文章目录 微信小程序获取头像昵称问题解决 前言和传统方法 问题描述 解决方案 实现效果 前言和传统方法 微信小程序是一种基于微信开发平台的轻应用,用户可以通过微信扫码. ...

  7. 微信小程序获取用户信息

    微信小程序获取用户信息 微信小程序获取用户信息接口做了调整: 2021年4月28日24时后发布的小程序新版本,无法通过wx.getUserInfo与获取用户个人信息(头像.昵称.性别与地区),将直接获 ...

  8. 微信公众号/微信小程序获取用户信息以及推送微信模版消息_MQ

    微信公众号/微信小程序获取用户信息以及推送微信模版消息_MQ 一.获取用户信息 1.首先我们需要了解什么是微信用户的OpenID 在关注者与公众号产生消息交互后,公众号可获得关注者的OpenID(加密 ...

  9. 微信小程序获取用户信息更新解决方案

    微信小程序获取用户头像和昵称更新了,以下代码是兼容旧版本微信和新版本微信的解决方案,仅供参考 直接上代码 <template><!-- 顶部用户信息显示 --><view ...

最新文章

  1. python 输出大文本文件
  2. “双一流”本科生可得13.2万补贴!这座城市发布重磅人才新政
  3. android windows 上JNI编程
  4. 软件测试技巧|软测经典面试题(二)
  5. 【Linux安全】chattr命令锁定账户敏感文件
  6. (转)AssetBundle系列——游戏资源打包(二)
  7. java中session对象及其常用方法
  8. 小说平台系统开发(PHP)
  9. MySql 8.0对应的驱动包
  10. 【合泰HT32火焰传感器报警】
  11. 资深HR分享:常见面试技巧,都是套路!
  12. Qt-------->第六天,Qt高级编程
  13. jQuery即点即改
  14. 我的 Python 全栈开发自学笔记
  15. unity 相同材质不同属性怎么合批
  16. Google Filament 源码学习(二):三方库分类总结
  17. xss challenges闯关详细(6-10)
  18. VS2010添加资源文件
  19. 专利一通出案待答复和中通出案待答复
  20. 室内设计计算机考试题,12秋计算机班3dsMax室内设计期末考试试题

热门文章

  1. 国科大计算机学院元旦晚会,电子所2016年度研究生元旦晚会欢乐上演
  2. 高通处理器曝高危漏洞,波及全球超9亿部安卓设备
  3. 无法启动IIS Express Web服务器
  4. 30 年前,微软如何走出反垄断
  5. CSS----其他新增属性
  6. MySQL 让你拥有不一样感觉
  7. Average函数公式:Average(区域)、Average(数值,数值)
  8. wine下使用酷狗2008
  9. 我的世界进入服务器显示rBAB,我的世界1.12.x RBTrixel 二周目生存服务器
  10. part time job c语言,英语面试Part-time Job篇