php 解决MySQL插入数据出现 Incorrect string value: '\xF0\x9F\x92\x8BTi...'错误

2024-01-13 23:29 2777 浏览
评论(0
字体大小:

在做微信联合登录 , 登录验证后 把微信的 昵称 存到数据库中, 数据库是 utf8格式的  。在存数据库的时候弹出如下错误信息:

A Database Error Occurred Error Number: 1366 Incorrect string value: '\xF0\x9F\x8C\x9F\xE7\x90...' for column 'nick_name' at row 1

有错误信息就好办了,结果上网一查结果是:mysql编码格式utf-8格式,不支持带四字节的字符串插入。

网上提供两种方法:

1.升级 MySQL ,然后将对应的数据类型改为utf8mb4类型

2.出现的四字节UTF-8字符过滤或转化为自定义类型

由于装的MySQL版本为5.1,所以方法1不适合;本人选了第二种过滤字符串,变成合适的3字节utf-8

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

虽然还是不能很完美解决,但是至少保证每条数据都可以正确插入!

如果想完美解决的话,最好升级MySql,直接改数据类型为utf8mb4类型

本文发布于程序达人 ,转载请注明出处,谢谢合作

0 人认为有用
0 评论

相关热点文章推荐

程序达人 - chengxudaren.com

一个帮助开发者成长的社区

相关文章