【发布时间】:2014-12-21 13:08:07
【问题描述】:
查询:
query = "SELECT * from "+str(tablename)+" where user='"+str(user)+"' AND review_title='"+rt+"'"
错误信息:
UnicodeEncodeError: 'ascii' codec can't encode character u'\xe9' in position 3: ordinal not in range(128)
代码:
rt = review_title.replace("'", "\\'")
rt = rt.replace('"', '\\"')
rt = unicode(rt).encode('utf-8')
query = "SELECT * from "+str(tablename)+" where user='"+str(user)+"' AND review_title='"+rt+"'"
在这种情况下,表名是 'ta_rest_review',user 是 'KANNONEPL...',rt 是 'Excelente pero \"OJO a la CUENTA\"'
【问题讨论】:
-
您的值中有一个
é字符,但您的示例输入缺少该字符。 -
在报告 Python 问题时,总是包含回溯。如果它是实际的
query分配,那么带重音符号的é字符位于user或tablename值中。 -
在这种情况下,
UnicodeEncodeError的问题是由在具有有效 ASCII 范围之外的字符的unicode对象上调用str()引起的,这与 post you commented on earlier 完全不同。
标签: python python-2.7 character-encoding