2016-06-07 27 views
2

这是推动我疯了,我已经从社区尝试过不同的建议,但它似乎没有工作。我试着用utf-8重新创建数据库,但它仍然给我这个错误。UnicodeEncodeError:“Latin-1的”编解码器在637位置不能编码字符“ u2013”​​:在范围序数不(256)

基本上我用pymysql模块和写入数据库。

openconnect = pymysql.connect(主机= 'XXXX',端口= 3306,用户= 'XXX',的passwd = 'XXX',分贝= 'XXXX') opencursor = openconnect.cursor()

我的柱中的一个具有所述问题,基本上我试图这些选项...

引起的问题是受试者中的列和我试图下面

受试者=(df.Subject [I])

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

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

我有两个选择,要么修复编码或如何设置上pymysql联合使用UTF-8?我验证了数据库,MySQL上的联盟设置为utf-8。非常感谢您对这个输入..

还在为此苦苦挣扎。 欢呼 卡比尔

+0

不知何故在格式化问题主题=(df.Subject [1]),并在下次line subject.encode('latin-1','ignore') – NKB

+0

'# - * - coding:utf-8 - * - '在脚本的顶部添加这一行。 –

+0

我只是去尝试..和仍然它给出了相同的错误 – NKB

回答

8

我能够通过定义pymysql字符集来解决问题连接

openconnect = pymysql.connect(主机= 'XXXX',端口= 3306,用户= 'XXX',passwd文件= 'XXX',DB = 'XXXX',字符集= 'utf-8')

请注意这是UTF8而不是UTF8

+1

不知道为什么downvotes。我得到了同样的问题,并且'charset ='utf8''解决了它。谢谢 :) – Kamil

相关问题