[D]python 查询 mysql乱码问题

hucuibai 2012-05-06 11:33:00

#encoding=utf-8
import MySQLdb
db=MySQLdb.connect(user='root',passwd='123456',db='test',charset='utf8')
cur=db.cursor()
cur.execute('select * from test1')
f=file("f:\\1.txt",'w')
for i in cur.fetchall():
print i[0],i[1]
f.close()
cur.close()

这样能输出中文
1 我的号码是: 1
2 我的号码是: 2
3 我的号码是: 3



#encoding=utf-8
import MySQLdb
db=MySQLdb.connect(user='root',passwd='123456',db='test',charset='utf8')
cur=db.cursor()
cur.execute('select * from test1')
f=file("f:\\1.txt",'w')
for i in cur.fetchall():
print i
f.close()
cur.close()

这样却不行,新手恳请赐教!!非常感谢

-------------------------------
Double行动:
原帖分数:30
帖子加分:30
...全文
105 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
angel_su 2012-05-07
  • 打赏
  • 举报
回复
i记得是个tuple来的,所以你看到的应该不是乱码,而是非ascii字符使用转义符号来表示...
bijie521yl 2012-05-07
  • 打赏
  • 举报
回复
同意1楼的,cur.fetchall() 返回的是((),。。)这种格式的,
print i 得到的是个元祖,数字型的数据 ,举个例子,2 ,返回的则是2L,长整形,字符串是
而是非ascii字符使用转义符号来表示或者是u'字符串',如果是而是非ascii字符使用转义符号,不需要转码,如果是u'字符串',你想要在客户端输出,可能要转码,encode('gbk')或者你是编码方式
bullswu 2012-05-07
  • 打赏
  • 举报
回复
首先这个类似二维数组,其实是一个列表+元组,所以你取值得时候是需要a[i][0]这样的格式才行

37,741

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • WuKongSecurity@BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧