我在Python中遇到的许多问题都与没有Unicode的东西有关。有没有什么理由不默认使用Unicode?我理解需要用ASCII翻译某些东西,但它似乎是例外,而不是规则。
我知道Python 3对所有字符串都使用Unicode。这应该鼓励我作为unicode()
所有字符串的开发者吗?
答案 0 :(得分:6)
一般来说,我会说“不”,没有充分理由使用string
而不是unicode
。还要记住,您不必调用unicode()
来创建一个unicode字符串,您可以通过在字符串前加上u"this is a unicode string"
这样的小写字母来做到这一点。
答案 1 :(得分:4)
在Python 2.x中:
str
对象基本上只是 bytes 的序列。unicode
对象是一系列字符。了解这一点,选择正确的类型应该很容易:
unicode
。str
(在许多其他语言中,您可以使用byte[]
)。在Python 3.x中,类型str
是一串字符,正如您所期望的那样。如果需要一个字节序列,可以使用bytes
。