UnicodeEncodeError:'latin-1'编解码器无法对位置637中的字符'\ u2013'进行编码:序数不在范围内(256)

时间:2016-06-07 09:04:02

标签: python python-2.7 python-3.x utf-8 latin1

这让我发疯,我尝试了社区的不同建议,但似乎没有用。我甚至尝试使用utf-8重新创建数据库,但它仍然给我这个错误。

基本上我正在使用pymysql模块并写入数据库。

openconnect = pymysql.connect(host ='xxxx',port = 3306,user ='xxx',passwd ='xxx',db ='xxxx') opencursor = openconnect.cursor()

我的一个专栏有问题,基本上我尝试了这些选项...

导致问题的列是主题,我尝试了下面的

subject =(df.Subject [i])

subject.encode('latin-1','ignore')

然后尝试写入db失败。 如果我尝试subject.encode('latin-1')也会失败。

我有两个选项,要么修复编码,要么我如何设置pymysql上的联盟使用utf-8?我验证了db,mysql上的联盟设置为utf-8。非常感谢您对此的意见..

仍然在努力解决这个问题。 干杯 卡比尔

1 个答案:

答案 0 :(得分:9)

我能够通过在pymysql connect

中定义一个charset来解决这个问题

openconnect = pymysql.connect(host =' xxxx',port = 3306,user =' xxx',passwd =' xxx',db =&# 39; XXXX',字符集=' UTF8&#39)

请注意它是utf8而不是utf-8