在django admin界面添加汉字内容时发现如下错误:
Incorrect string value:
'\xE5\x93\x88\xE5\x93\x88...'
for
column
'content'
at row
1
之前添加英文没有任何问题,查看mysql数据库编码发现是 latin1,所以出错了。
解决办法为:
在第一次syncdb操作之前,设置所创建数据库编码为 utf8_genenal_ci
命令行如下:
CREATE DATABASE tinyCMS DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
或者用mysql-workbench创建数据库时直接选择数据库编码为utf8_genenal_ci(我是这样做的)
mysql 创建 数据库时指定编码很重要,很多开发者都使用了默认编码,但是制定数据库的编码可以很大程度上避免倒入导出带来的乱码问题。
我们应该遵循的原则是:数据库,表,字段和页面或文本的编码要统一起来。