0

我有一个从数据库中获取的字段,其中包含带有这部分 één 的字符串,并且在得到这个时我得到了错误:

“UnicodeEncodeError:‘ascii’编解码器无法对位置 12-15 中的字符进行编码:序数不在范围内 (128)”

我已经搜索了这个错误,其他人也因为 unicodes 而遇到了问题,这些 un​​icodes 以这样的开头u'\xa0,等等。但在我的情况下,我认为它是由于特殊字符造成的。我不能对数据库进行更改,因为它不在我的访问范围内。我可以访问它。

代码在这里:(实际上是对外部网址的调用)

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'])+"', "
4

2 回答 2

3

在将数据插入数据库之前,您需要找到用于数据的编码。让我们假设它是 UTF-8,因为这是最常见的。

在这种情况下,您将需要 UTF-8 解码而不是 ascii 解码。你没有提供任何代码,所以我假设你有"data".decode(). 试试看"data".decode("utf-8"),如果你的数据是用这种编码方式编码的,它就可以工作。

于 2014-06-05T05:39:01.573 回答
1

所以在我看来,当时的字符串已经是 unicode 了。所以删除该行上的str()unicode功能。

于 2014-06-05T06:43:08.680 回答