mysql 插入中文报错:incorrect string value for column
分别检查数据库、表和字段的字符集编码及排序规则:
前两者都为 utf8 或 utf8mb4(支持二进制存储,表情包存储)
数据库字符集使用 utf8mb4
表字符集使用 utf8mb4
最后一个字段的字符集为 latin 之类的,但观察了以下,发现所有表的字段字符集都是这个,这意味着如果要让之后不再报这个错误,需要修改所有的字段的字符集。
网上找了一个 修改所有字段字符集 sql :
-- 查看某个数据库的表的用的字符集
SELECT TABLE_SCHEMA '数据库',TABLE_NAME '表',TABLE_COLLATION '原排序规则',CONCAT('ALTER TABLE ',TABLE_NAME, ' CHARACTER SET=utf8mb4, COLLATE=utf8mb4_general_ci;') '修正SQL'
FROM information_schema.`TABLES` where TABLE_SCHEMA = '你的数据库名' and TABLE_COLLATION != 'utf8mb4_general_ci'
将 '你的数据库名' 修改为实际的数据库名,执行查询,得到 '修正SQL' 一列,点击列头右键选择复制所有,再放到 sql 执行框里执行。这边是都改成 utfmb4,也可以选择改成 utf8。注意执行前备份数据库。