我在服务器上使用python与mySQL通信。如果一个非ascii字符的字符串被提供给python以传输到mySQL表字段中,我会从服务器上得到这个错误。在
UnicodeEncodeError: 'ascii' codec can't encode characters in position 251-256: ordinal not in range(128)
如何传递utf-8数据。我有这样的评论:
^{pr2}$…包含在python主代码页以及所有代码页中。在
奇怪的是,我能够从mySQL中获取包含UTF-8字符的数据,它可以很好地传输到JavaScript。在
试图传输数据的代码行如下:
sql = '''INSERT INTO clientMail (clientID,coID,MessageDate,TypeSent,Comments,FName)
VALUES(%s, %s, '%s', '%s', '%s', '%s') ''' % (clientID,companyID,currentDate,TypeSent,emailMessage,company_Name)
print "===>>>>>>>>>>>>>",sql
UTF-8字符出现在Comments字段中
任何帮助都将不胜感激。。。在
我想说的是这里有人帮了我,但不管我怎么努力,我还是没能让它走下去。。。不过,谢谢大家的努力。不管怎样,我从所有人身上都学到了一些东西。在
解决这个公认的难题的方法如下:
连接参数必须包括以下项目
没有这些,你所做的一切都会成功,正如我的结论。但我是新手,别把我当回事。在
尽管如此,还是非常感谢你们的参与。。。。你们摇滚。在
丹尼斯
您的数据应该是Unicode,字符串格式(%s)正在强制它使用默认编码(ASCII)进行字符串类型。在
在Unicode字符串上使用.encode('utf-8'),就可以完成所有设置了。在
一个非常快速的解决方法是确保字符串以Unicode开头:
ie在字符串前面加一个
u
。在但是,您应该而不是使用字符串格式将值插值到SQL语句中。您应该依靠MySQL适配器来完成这项工作,以确保您不受SQL注入的影响:
^{pr2}$相关问题 更多 >
编程相关推荐