这是一个错误?json.dumps(pickle.dumps(u'å'))引发UnicodeDecodeError
>>> import json
>>> import cPickle
>>> json.dumps(cPickle.dumps(u'å'))
Traceback (most recent call last):
File "<console>", line 1, in <module>
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/json/__init__.py", line 230, in dumps
return _default_encoder.encode(obj)
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/json/encoder.py", line 361, in encode
return encode_basestring_ascii(o)
UnicodeDecodeError: 'utf8' codec can't decode bytes in position 1-3: invalid data
的错误不会在2.6.4发生我。什么补丁版本?也许封闭和假装 - 它的一个没有bug的bug在2.6以后的版本中被修正了。 – 2010-10-09 00:29:54
@Glenn Maynard:我正在使用2.6.5:P – satoru 2010-10-09 00:33:41
无论sys.getdefaultencoding如何,也发生在2.6.6中。 'cPickle.dumps(u'å')''返回''V \ xe5 \ n.'',而不是'V \ u00e5 \ n.''。我很好奇你为什么返回后者(这是正确的输出:完全是ASCII)。 – 2010-10-09 00:38:12