Django admin界面 Incorrect string value错误的解决

在django admin界面添加汉字内容时发现如下错误:

Warning at /admin/flatpages/flatpage/add/
Incorrect string value: '\xE5\x93\x88\xE5\x93\x88...' for column 'content' at row 1
Request Method:	POST
Request URL:	http://127.0.0.1:8000/admin/flatpages/flatpage/add/
Django Version:	1.2.1
Exception Type:	Warning
Exception Value:	
Incorrect string value: '\xE5\x93\x88\xE5\x93\x88...' for column 'content' at row 1
Exception Location:	/usr/lib/pymodules/python2.6/MySQLdb/cursors.py in _warning_check, line 82
Python Executable:	/usr/bin/python
Python Version:	2.6.6

之前添加英文没有任何问题,查看mysql数据库编码发现是 latin1_swedish_ci。之前是利用phpmyadmin “创建与用户同名的数据库并授予所有权限”创建的数据库,不知道如何改变创建数据库时默认编码这个问题。

解决办法为:在第一次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 创建 数据库时指定编码很重要,很多开发者都使用了默认编码,但是制定数据库的编码可以很大程度上避免倒入导出带来的乱码问题。

我们应该遵循的标准是:数据库,表,字段和页面或文本的编码要统一起来。

转载于:https://www.cnblogs.com/moinmoin/archive/2011/02/15/dj_incorrect_string_value.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值