欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

MySQL插入emoji手机表情报错解决方案

程序员文章站 2022-06-29 12:55:17
...

报错原因:

ps:为什么没有内容呢,由于iteye插入emoji报错,导致保存被截断了,2018-04-11再次编译

 

插入手机表情报错,类似(手机可观看的emoji表情,这里报错就不插入了)

 

报错内容:

 

Error: ER_TRUNCATED_WRONG_VALUE_FOR_FIELD: 
Incorrect string value: '\xF0\x9F\x90\xB4' 
for column 'content' at row 10
 

 

原因:

资料显示原因是,MYSQL 5.5 之前, UTF8 编码只支持1-3个字节,只支持BMP这部分的unicode编码区,而emoji图标恰好是4个字节的编码进行存储。从MYSQL5.5开始,可支持4个字节UTF编码utf8mb4,一个字符最多能有4字节,所以能支持更多的字符集。所以要解决问题,必需把数据库表字符编码全部改成utf8mb4。

 

解决方案:

1,更新my.cnf 编码为utf8mb4

$ sudo gedit /etc/mysql/my.cnf

 

[client]
default-character-set=utf8mb4

[mysql]
default-character-set=utf8mb4

[mysqld]
character-set-client-handshake = FALSE
collation-server = utf8mb4_unicode_ci
init-connect='SET NAMES utf8mb4'
character-set-server = utf8mb4

 

2,重启MySQL服务器

service mysqld stop
service mysqld start
service mysqld restart

 

3,查看系统文件编码格式

mysql > SHOW VARIABLES WHERE Variable_name LIKE 'character\_set\_%' OR Variable_name LIKE 'collation%';

 MySQL插入emoji手机表情报错解决方案
            
    
    博客分类: mysql 乔乐共享纵观千象每天进步一点点学习永无止境MySQL 

  • MySQL插入emoji手机表情报错解决方案
            
    
    博客分类: mysql 乔乐共享纵观千象每天进步一点点学习永无止境MySQL 
  • 大小: 16.9 KB