码迷,mamicode.com
首页 > 数据库 > 详细

Python查询数据库时候遇到的乱码问题

时间:2017-08-29 11:12:17      阅读:216      评论:0      收藏:0      [点我收藏+]

标签:[1]   log   版本   utf8   .com   cal   etc   coding   关闭   

今天在看Python连接数据库的内容,然后遇到了最常遇到的字符乱码的状况,这真的很烦人,由于我用的是3.6的版本,,默认的是utf-8,如果是3以下的版本,请在文件开头加一句代码

#encoding=utf-8

 这是菜鸟教程上的代码

import pymysql

# 打开数据库连接
db = pymysql.connect("localhost","testuser","test123","TESTDB" )

# 使用cursor()方法获取操作游标 
cursor = db.cursor()

# SQL 查询语句
sql = "SELECT * FROM EMPLOYEE        WHERE INCOME > ‘%d‘" % (1000)
try:
   # 执行SQL语句
   cursor.execute(sql)
   # 获取所有记录列表
   results = cursor.fetchall()
   for row in results:
      fname = row[0]
      lname = row[1]
      age = row[2]
      sex = row[3]
      income = row[4]
       # 打印结果
      print ("fname=%s,lname=%s,age=%d,sex=%s,income=%d" %              (fname, lname, age, sex, income ))
except:
   print ("Error: unable to fetch data")

# 关闭数据库连接
db.close()

  我比着敲出来的时候,出来的是乱码,如下所示

技术分享

这个黑人问号是什么鬼,然后从头开始找起,记得在配置数据库建表的时候一定要改成utf-8,不然一切都是徒劳的

技术分享

很明显,源头是没问题的,那就是代码的问题了。

从网上找了许多方法,有一个是.decode(‘utf-8‘)方法,,我试过,但是会莫名的报错我也没找到具体原因,然后又想了一下之前在写PHP时候连接数据库的操作的时候顺便做的不经意的转码行为,,然后随即将代码改正

import pymysql

# 打开数据库连接
db = pymysql.connect(host=‘localhost‘, user=‘root‘, passwd=‘0825‘, db=‘testdb‘, charset=‘utf8‘)

# 使用cursor()方法获取操作游标
cursor = db.cursor()

# SQL 查询语句
sql = "select * from employee"

# 执行SQL语句
cursor.execute(sql)
# 获取所有记录列表
results = cursor.fetchall()
for row in results:
    fname = row[0]
    lname = row[1]
    sex = row[2]
    income = row[3]
    # 打印结果
    print("fname=%s, lname=%s, sex=%s ,income=%d" % (fname, lname, sex, income))
# 关闭数据库连接
db.close()

  嗯哼,,完美运行

技术分享

 

Python查询数据库时候遇到的乱码问题

标签:[1]   log   版本   utf8   .com   cal   etc   coding   关闭   

原文地址:http://www.cnblogs.com/mmykdbc/p/7446967.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!