【发布时间】:2015-11-25 00:16:49
【问题描述】:
我有一个json,例如:
item = {"name": '\x84\xa2 Target', ...}
在一个以以下结尾的函数中:
return json.dumps(item, ensure_ascii=True)
运行该函数会导致此错误:
UnicodeDecodeError: 'utf8' codec can't decode byte 0x84 in position 6: invalid start byte
我试过了
return json.dumps(item, ensure_ascii=False).encode('utf-8')
但这给出了同样的错误。
下面的这段代码确实“工作”,但它给出的 json 混淆了其他代码(不是我这边):
return json.dumps(item, encoding="ISO-8859-1")
我想知道如何从任何字符串中删除所有“复杂”字符。
【问题讨论】:
-
你试过
json.dumps(item).encode('ascii', 'ignore')吗? -
这给出了:return _iterencode(o, 0) UnicodeDecodeError: 'utf8' codec can't decode byte 0x84 in position 6: invalid start byte