2011-11-28 57 views
6

我在Python中遇到的很多問題都與Unicode中沒有東西有關。有沒有什麼理由不默認使用Unicode?我知道需要翻譯ASCII碼,但它似乎是例外而不是規則。有沒有什麼好的理由不使用unicode而不是string?

我知道Python 3對所有字符串都使用Unicode。這是否應該鼓勵我作爲開發者到unicode()所有的字符串?

回答

6

一般來說,我要說「不」,沒有一個很好的理由使用string而不是unicode。還請記住,您不必撥打unicode()來創建一個unicode字符串,您可以通過在字符串前加上一個小寫的字符,如u"this is a unicode string"來做到這一點。

+1

謝謝,我從現在開始就這樣做。 –

4

在Python 2.x的:

  • str對象基本上是一個的字節序列。
  • A unicode對象是字符序列

認識到這一點,它應該很容易選擇正確的類型:

  • 如果你想有一個字符串中的字符使用unicode的。
  • 如果你想要一個字符串編碼爲字節使用str(在許多其他語言中,你會在這裏使用byte[])。

在Python 3.x中,類型str是一串字符,就像您期望的那樣。如果你想要一個字節序列,你可以使用bytes

+0

Python 2.6+也有字節數組,如果你想讓你的字節變得更可變一些。 – kindall

相關問題