问题与处理策略
问题描述
- 执行 MySQL SQL 语句,插入数据时,报如下错误
1366 - Incorrect string value: '\xE5\xB0\x8F\xE5\x9C\x9F...' for column 'nickname' at row 1
问题原因
- 尝试在 nickname 列插入包含非 ASCII 字符 的数据(中文),但该列的字符集(Charset)或排序规则(Collation)不支持这些字符
处理策略
- 修改数据库的字符集,后续新建的表都会自动继承
ALTER DATABASE 【数据库名】
CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_ci;
- 但不会影响已存在的表,已有表的字符集需要单独修改
ALTER TABLE 【表名】
CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;