ychram报错django.db.utils.OperationalError: (1366, "Incorrect string value: '\xE5\xBC\x80\xE5\x8F\x91...' for column 'title' at row 1")怎么解决
时间: 2023-07-20 11:44:45 浏览: 180
解决出现Incorrect integer value: '' for column 'id' at row 1的问题
5星 · 资源好评率100%
这个错误是由于MySQL的字符集不支持某些字符导致的。你可以尝试以下几种方法来解决这个问题:
1. 修改MySQL的字符集为utf8mb4。可以在MySQL配置文件中添加以下语句:
```
[client]
default-character-set = utf8mb4
[mysql]
default-character-set = utf8mb4
[mysqld]
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
```
然后重启MySQL服务。
2. 修改Django的字符集为utf8mb4。可以在Django的settings.py文件中添加以下语句:
```
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'mydatabase',
'USER': 'mydatabaseuser',
'PASSWORD': 'mypassword',
'HOST': '127.0.0.1',
'PORT': '3306',
'OPTIONS': {
'charset': 'utf8mb4',
},
}
}
```
然后运行Django数据库迁移命令。
3. 对含有不支持字符的数据进行转码。可以使用Python的encode()函数将字符串转为utf8mb4编码,再存入数据库。例如:
```
title = '开发中文应用'
title = title.encode('utf8mb4')
```
然后将转码后的字符串存入数据库。
希望这些方法可以解决你的问题。
阅读全文