แบบสอบถาม:
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\"'
é
อยู่ที่ไหนสักแห่งในค่าของคุณ แต่อินพุตตัวอย่างของคุณไม่มีอักขระนั้น - person Martijn Pieters   schedule 26.10.2014query
จริง อักขระé
ที่เน้นเสียงนั้นจะอยู่ในค่าuser
หรือtablename
- person Martijn Pieters   schedule 26.10.2014UnicodeEncodeError
เกิดจากการเรียกstr()
บนวัตถุunicode
ที่มีอักขระนอกช่วง ASCII ที่ถูกต้อง ซึ่งเป็นปัญหาที่แตกต่างไปจาก โพสต์โดยสิ้นเชิง คุณแสดงความคิดเห็นก่อนหน้านี้ - person Martijn Pieters   schedule 26.10.2014