Python : UnicodeEncodeError: 'latin-1' codec can't encode character

(转载)https://segmentfault.com/q/1010000005142365

python3使用pymysql遇到编码是lanti1,如何插入数据?

问题

公司以前的项目是外包写的,数据库配置的时候
编码也没设置,就是lanti1
后来又直接改成了gbk......
使用php读取数据库的时候,数据没有乱码情况
但是python读取就麻烦了,因为编码是lanti1
python链接mysql并读取数据的时候,返回的编码总是乱码
链接数据库的时候也使用了下面的sql语句也不行
set names 'utf8'
set names 'gbk'
set names 'lanti1'

使用(set names 'lanti1')时,爆下面的错误
AttributeError: 'NoneType' object has no attribute 'encoding'

我现在遇到的问题:
    Python读取MySQL数据的时候,会有乱码,根本显示不了中文
    Python写入数据到Mysql的时候,也会是乱码

请问如何解决这两个问题?

CODE

使用下面的方法链接Mysql也是一样的乱码
pymysql.connect(host=host,port=port,user=user,passwd=passwd,db=dbName,charset='lanti1',
                                    cursorclass=pymysql.cursors.DictCursor)

环境信息

系统:Windows 10
语言:Python3.5
数据库:Mysql5.5

备注

在百度搜索过,只有Python2.7.x的解决办法
解决方法地址:
http://www.cnblogs.com/zhoujinyi/archive/2012/11/01/2748313.html

  • 2016年05月17日提问
  • 评论
  • 邀请回答
  • 编辑
默认排序 时间排序

1个回答

答案对人有帮助,有参考价值 0 答案没帮助,是错误的答案,答非所问

MySQLdb.connect(host='', user='', passwd='', db='', port=3306, charset='utf8')

  • 2016年05月17日回答
  • 2 评论
  • 赞赏
  • 翻译
  • 编辑



你可能感兴趣的:(python学习)