我有一个字段从数据库中获取,其中包含此部分的字符串é©n得到这个我得到错误:
“UnicodeEncodeError:'ascii'编解码器无法编码位置12-15中的字符:序数不在范围内(128)”
我已经搜索了这个错误,而其他人因为开始类似u'\xa0
等问题的unicodes而遇到了问题。但在我的情况下,我认为是由于特殊字符。我无法对数据库进行更改,因为它不在我的访问范围内。我可以访问它。
代码在这里:(实际上是对外部网址的调用)
req = urllib2.Request(url)
req.add_header("Content-type", "application/json")
res = urllib2.urlopen(req,timeout = 50) #50 secs timeout
clientid = res.read()
result = json.loads(clientid)
然后我使用结果变量来获取上面提到的字符串,我在这一行得到错误:
updateString +="name='"+str(result['product_name'])+"', "
答案 0 :(得分:3)
在将数据插入数据库之前,您需要找到用于数据的编码。我们假设它是UTF-8,因为那是最常见的。
在这种情况下,您需要UTF-8解码而不是ascii解码。你没有提供任何代码,所以我假设你有"data".decode()
。尝试使用"data".decode("utf-8")
,如果您的数据是使用此编码进行编码的,则可以使用。
答案 1 :(得分:1)
所以听起来像字符串已经是unicode了。因此,请删除该行上的str()
和unicode
函数。