Python Web操作MySQL乱码问题的解决
乱码,身为CJK语言国度的程序员永恒的主题……
乱码,在stardict里面查了一下翻译,居然出来这么一长串:
characters changed to be irrecognizable because different coder or other reasons
不管怎么说,这次是又碰上乱码了。
症状是这样的,写了几个psp文件,内容大概是通过POST方法从表单获取数据,写入数据库然后另一个页面调用数据库内容显示。结果在写完之后调用显示页面,提示错误:unicodeDecodeError: 'ascii' codec can't decode byte,看来是因为我数据库里的字段用了中文,显示不出来,然后在MySQL里面SELECT * 了一下,发现含中文的内容都是???字样的乱码(以前怎么就没注意捏……)。
上网搜,发现了这个网页:http://blog.csdn.net/foyuan/archive/2007/07/27/1711100.aspx,文中提示了四个步骤确保乱码消失。
因为我写的是PSP页面,不是纯粹的python,似乎不能用#-*- coding -*-来指定编码,但是参照里面提示的两个步骤,我最后也成功解决了乱码问题:
1. 解决MySQL显示乱码,修改/etc/mysql/my.cnf文件,分别在[client]、[mysqld]后指定编码:default-character-set = utf8,重启mysql服务。
2. 解决PSP页面不能解析Unicode字符,在python语法块内,导入sys包,然后指定编码:
import sys ... reload(sys) sys.setdefaultencoding('utf-8')
这样就搞定了,等我后续看看有其他什么问题没……



















python 呵呵 考完研折腾appspot去
不知道google的哪儿跟GQL会不会也出乱码。。。
python呵呵 考完研也折腾这个 捣鼓appspot去
不知道google的GQL数据库会不会乱码
@YuLei666, 你的留言居然被认作spam了……orz