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

NKB*_*NKB 2 python utf-8 latin1 python-2.7 python-3.x

这让我发疯,我尝试了社区的不同建议,但似乎没有用.我甚至尝试使用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')

然后尝试写入它失败的数据库.如果我尝试subject.encode('latin-1')也会失败.

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

仍在努力解决这个问题.欢呼Kabeer

NKB*_*NKB 9

我能够通过在pymysql connect中定义一个charset来解决这个问题

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

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