dajngo admin 中文报错 Incorrect string value: '\xE6\xA2\xB5\xE8\x92\x82...'for column 'change_message' at row 1

时间:2021-11-22 23:32:22

 

Incorrect string value: '\xE6\xA2\xB5\xE8\x92\x82...'for column 'change_message' at row 1

 

网上查到的方法:

 
解决方法是设置django_admin_log表的change_message一项使用utf8_unicode_ci;
具体mysql语句为:
mysql> ALTER TABLE django_admin_log MODIFY COLUMN change_message VARCHAR(255)  CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL;

 

具体情况对应修改上面的表名和字段即可。
 
但是!!没用!!!我重启一下服务器试试。。
 
嗯还是没用。
 
又查了一个,说设置数据库默认编码:

 

在第一次syncdb操作之前,设置所创建数据库编码为 utf8_genenal_ci或utf8_unicode(不知道这二者在处理中文上有什么区别?)。

在创建数据库时可使用如下命令:

GBK:CREATE DATABASE tinyCMS DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci;

UTF8:
CREATE DATABASE tinyCMS DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

已创建时(但对已存在的表不影响):

ALTER DATABASE tinyCMS CHARACTER SET utf8 COLLATE utf8_general_ci;

mysql 创建 数据库时指定编码很重要,很多开发者都使用了默认编码,但是制定数据库的编码可以很大程度上避免倒入导出带来的乱码问题。

来源:http://www.cnblogs.com/moinmoin/

ok啦~