早睡早起,方能养生!
Sleep early rise early, square can preserve one's health!

[10501]SQLSTATE[HY000]: General error: 1366 Incorrect string value: '\xF0\x9F\xA7\x9A\xE2\x80...' for column 'content' at row 1

super
2021-09-07 15:53
views 73
[ error ] [10501]SQLSTATE[HY000]: General error: 1366 Incorrect string value: '\xF0\x9F\xA7\x9A\xE2\x80...' for column 'content' at row 1[/www/wwwroot/super/thinkphp/library/think/db/Connection.php:764]

 

Mysql 1366 错误是因为插入的数据编码与数据表设置编码冲突所导致的。

 

 

通过日志发现,是由于插入的内容有特殊表情,而数据表的格式,是utf8_general_ci规则的。

 

解决方式:

 

1. 在此字段插入数据时,将数据进行 base64编码存入数据库。用的时候在decode解码后显示

  1.  
  最常见的是,做微信开发时,客户的微信昵称千奇百怪的,各种符号,一定要做处理才存进数据库

 

2. 去除特殊符号

 

 php删除微信名称表情符号

 

3. 修改数据库编码

 

众所周知,mysql的utf8mb4才是真正的utf8编码。

 

在网上看到一些文章说,将数据库的字符集改成utf8mb4就可以存储表情了。

 

其实在前两年我做过一个实验发现,修改编码后有某些表情还是无法存入数据库= . = (有可能是表情迭代太快啦?)


分享
0 条讨论
top