'ascii'编解码器无法对位置51中的字符u'\ xae'进行编码:序数不在范围内(128)

时间:2015-03-08 04:23:45

标签: python mysql encoding

我要将数据插入mysql中的表:

cursor.execute('INSERT INTO master_product(category_Id, manufacture_Id, asin, title,image, description) \
                VALUES (%s,%s,%s, %s,%s, %s)',(category_Id, manufacture_Id, asin, title, image, description))

但我得到了:' ascii'编解码器不能对字符u' \ xae'进行编码。位置51:序数不在范围内(128)

2 个答案:

答案 0 :(得分:1)

您的一个参数是Unicode字符串,并使用默认的ascii编解码器隐式编码为字节字符串。打印参数类型以帮助解决问题:

print type(category_Id)
print type(manufacture_Id)
etc...

答案 1 :(得分:0)

  • Unicode中的u'\ xae表示®(注册商标)
  • 您的参数之一可能是包含u'\ xae的unicode字符串,并且您必须使用Python 2.x
  • 您应尝试将Python升级到3.x,以防止出现此错误。

此链接可能会提供更多信息---> How to fix: "UnicodeDecodeError: 'ascii' codec can't decode byte"