python返回字符问题

王阿觉 发布于 2013/01/08 16:48
阅读 533
收藏 0
我使用的系统环境是: 
1.win7
2.mysql5.2.28
3.python2.7.3
4.sublime text 2


前几天,我在用Python写一个博客的WEB的时候,使用了MYSQL,数据库里面只是简单的插入里一句“id为2,中文字符为‘呵呵,早上好哦,陈山楂’的语句”,但返回的代码如图一所示,

(我也不知道什么字符)

但使用"NAIVCAT"软件打开后查看的是可以正确显示的中文字符。如图二所示:


但是在MYSQL的控制台里面又是以下显示:




我的相关代码如下,烦请各位有经验的程序猿OR遇到过类似问题的朋友帮一下忙,谢谢,我就卡死在这里了。


#coding=utf-8
import MySQLdb


conn=MySQLdb.Connection(host="127.0.0.1",user="root",passwd="root",db="blog",
port=3306,charset="utf8")
cur=conn.cursor()
fp=open("datas.sql")
sql=fp.read()
fp.close()
cur.execute("select  * from me_blog")
result=cur.fetchone()
conn.commit()
cur.close()
conn.close()
print result


加载中
0
xwz
xwz

print result['info'] 打印出来的应该是正确的字符

mysql控制台乱码 试一试 set character_set_results='gbk';

xwz
xwz
http://docs.python.org/2/library/codecs.html#standard-encodings
王阿觉
王阿觉
回复 @xwz : 我是在这一篇找到的,“unicode-escape“是啥编码? 原文接“http://www.oschina.net/code/snippet_119671_6660”
王阿觉
王阿觉
自己看了一下,搞定了,确实是自己的问题。输出的结果还是要编码和解码一下。 加入下面的语句即可: print result.decode('unicode-escape').encode('utf-8') 谢谢你的回答。
xwz
xwz
顺便提示一下 u'\5474\8...' 表示python的unicode类型
0
phantasy
phantasy
,charset="utf-8")
xwz
xwz
在python中直接utf8即可
王阿觉
王阿觉
NO,是不需要加“-”的,加了报错。
0
Wentasy
Wentasy
set names gbk;
返回顶部
顶部