[英]Byte array is a valid UTF8 encoded String in Java but not in Python
[英]unicode() vs. str.decode() for a utf8 encoded byte string (python 2.x)
有没有理由更喜欢unicode(somestring, 'utf8')
而不是somestring.decode('utf8')
?
我唯一的想法是.decode()
是一个绑定方法,所以python可以更有效地解决它,但如果我错了,请纠正我。
它很容易进行基准测试:
>>> from timeit import Timer
>>> ts = Timer("s.decode('utf-8')", "s = 'ééé'")
>>> ts.timeit()
8.9185450077056885
>>> tu = Timer("unicode(s, 'utf-8')", "s = 'ééé'")
>>> tu.timeit()
2.7656929492950439
>>>
显然, unicode()
更快。
FWIW,我不知道你在哪里得到的方法会更快 - 这恰恰相反。
我更喜欢'something'.decode(...)
因为在Python 3.0中unicode
类型不再存在,而text = b'binarydata'.decode(encoding)
仍然有效。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.