博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
微信开放接口获取用户昵称保存到MySQL中为空白
阅读量:7237 次
发布时间:2019-06-29

本文共 397 字,大约阅读时间需要 1 分钟。

昵称中包含emoji表情标签,某些标签是使用了4字节编码的UTF8。

而大多数现在使用的是3字节UTF8编码,这样会导致保存为空,且不会提示失败。

解决方法有2个,一个是升级到MySQL5.5+版本,支持utf8mb4编码格式,然后执行下面的变更语句:

ALTER TABLE 表名 CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;

这样可以完整保存用户昵称,但系统升级风险较大,需要多方面测试。

另外一个方法更容易,就是去除非3字节的特殊符号,

$nickname = preg_replace('/[\x{10000}-\x{10FFFF}]/u', '', $nickname);

缺点是这会导致读取显示的时候少了那些漂亮的图标。

转载于:https://www.cnblogs.com/w10234/p/5973823.html

你可能感兴趣的文章
【LeedCode】3Sum
查看>>
基于Token的WEB后台认证机制
查看>>
hdu1412
查看>>
ssh卡在debug1: SSH2_MSG_KEXINIT sent解决方法
查看>>
HTTP 错误 404.17 - Not Found和 HTTP 错误 404.2 - Not Found 解决办法
查看>>
Python中可迭代对象、迭代器以及iter()函数的两个用法详解
查看>>
C# winform程序防止前台卡死
查看>>
JdbcDaoSupport应用
查看>>
Java加密算法(五)——非对称加密算法的由来DH
查看>>
centos7下vim8.1的编译安装教程
查看>>
服务器上传文件:通过远程桌面传输文件
查看>>
Spring MVC 教程,快速入门,深入分析
查看>>
计算字符串最后一个单词的长度,单词以空格隔开。 java算法
查看>>
妙味css3课程---1-1、css中自定义属性可以用属性选择器么
查看>>
MySQL数据库实现Oracle常用函数
查看>>
Python 进阶_OOP 面向对象编程_类属性和方法
查看>>
python 小笔记
查看>>
python firebase
查看>>
MegaCli64 raid对应关系
查看>>
LSM Tree解析
查看>>