mysql生僻字插入失败解决方案

当项目已经上线运行,原来编码统一为utf8 一时间全部表字段一个一个修改为utf8mb4 很麻烦

想达到的目的是只修改可能存在生僻字的字段:

1、修改可能存在生僻字插入的字段,例如:

ALTER TABLE news CHANGE title title VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '标题';

这里除了修改字符集之外,需要加大存储

2、设置mysql字符集:
mysql> set character_set_client=utf8mb4;

mysql> set character_set_connection=utf8mb4;

mysql> set character_set_database=utf8mb4;

3、PHP 连接mysql 也设置为 utf8mb4,否则读取生僻字只显示一个问号

完成以上三步即可

当然理想的设置是 所有数据库 表 字段,php程序,统一设置为utf8mb4

上一篇:MySQL中的utf8mb4和utf8字符集有什么区别?


下一篇:mysql字符集utf8mb4失效踩坑