2025-09-25 15:54:11 by wst
django今天写一个一篇博客,但是里面包含了特殊字符,报错的时候报错了:
The above exception ((1366, "Incorrect string value: '\\xF0\\x9F\\x93\\x9A&l...' for column 'content' at row 1")) was the direct cause of the following exception:
最后的解决方法是:
1. 修改django的配置settings.py的DATABASE:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'XXXX',
'USER': 'XXX_admin',
'PASSWORD': 'XXX_1234',
'HOST': '*.*.*.*',
'PORT': '3306',
# 添加以下参数以支持utf8mb4
'OPTIONS': {
'charset': 'utf8mb4',
'init_command': "SET sql_mode='STRICT_TRANS_TABLES'",
},
}
}
2. 修改数据库参数:
登录 MySQL 服务器,执行以下 SQL 命令:
-- 1. 修改数据库编码
ALTER DATABASE XXXX CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-- 2. 修改已有表的编码(假设表名为`your_table`,替换为实际表名)
ALTER TABLE your_table CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-- 如果有多个表,需要逐个修改,或执行以下SQL生成批量修改语句
SELECT CONCAT(
'ALTER TABLE ', table_name, ' CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;'
) FROM information_schema.tables
WHERE table_schema = 'wst_blog';
修改了配置后,重启服务,搞定!