有没有什么好的理由不使用unicode而不是字符串?

时间:2011-11-28 21:48:33

标签: python unicode

我在Python中遇到的许多问题都与没有Unicode的东西有关。有没有什么理由不默认使用Unicode?我理解需要用ASCII翻译某些东西,但它似乎是例外,而不是规则。

我知道Python 3对所有字符串都使用Unicode。这应该鼓励我作为unicode()所有字符串的开发者吗?

2 个答案:

答案 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