【发布时间】:2011-11-26 23:28:46
【问题描述】:
似乎有两种不同的方法可以将字符串转换为字节,如TypeError: 'str' does not support the buffer interface的答案所示
这些方法中哪一种会更好或更Pythonic?还是只是个人喜好问题?
b = bytes(mystring, 'utf-8')
b = mystring.encode('utf-8')
【问题讨论】:
-
使用编码/解码更常见,也许更清晰。
-
@LennartRegebro 我解雇了。即使它更常见,阅读“bytes()”我知道它在做什么,而 encode() 不会让我觉得它正在编码为字节。
-
@erm3nda 这是使用它的一个很好的理由,直到它确实感觉像那样,那么你离Unicode zen又近了一步。
-
@LennartRegebro 我觉得使用
bytes(item, "utf8")已经足够好了,因为显式优于隐式,所以...str.encode( )默认默认为字节,让您更倾向于Unicode-zen 但更少显式-禅。 “共同”也不是我喜欢遵循的术语。此外,bytes(item, "utf8")更像str()和b"string"符号。如果我很菜鸟无法理解您的原因,我深表歉意。谢谢。 -
@erm3nda 如果您阅读了接受的答案,您会看到
encode()没有调用bytes(),相反。当然这不是很明显,这就是我问这个问题的原因。
标签: python string character-encoding python-3.x