繁体   English   中英

用于utf8编码的字节串的unicode()与str.decode()(python 2.x)

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM