如果我這樣做在python:Python中默認存儲Unicode字符串的類型是什麼樣的represantation?
>>> name = "âțâîâ"
>>> name
'\xc3\xa2\xc8\x9b\xc3\xa2\xc3\xae\xc3\xa2'
>>> len(name)
10
>>> u = name.decode('utf-8')
>>> len (u)
5
>>>
什麼是蟒蛇的默認編碼,如果你不指定任何?
如果我這樣做在python:Python中默認存儲Unicode字符串的類型是什麼樣的represantation?
>>> name = "âțâîâ"
>>> name
'\xc3\xa2\xc8\x9b\xc3\xa2\xc3\xae\xc3\xa2'
>>> len(name)
10
>>> u = name.decode('utf-8')
>>> len (u)
5
>>>
什麼是蟒蛇的默認編碼,如果你不指定任何?
也許你正在使用Python 2,(如果沒有,這個答案是壞)
什麼情況如下:
>>> name = "âțâîâ"
分配給name
一(字節)的字符串,其內容是由你的終端編碼決定。你的文本編輯器。在你的情況下,這顯然是UTF8。
這些字節顯示有
>>> name
'\xc3\xa2\xc8\x9b\xc3\xa2\xc3\xae\xc3\xa2'
只有當你與
>>> u = name.decode('utf-8')
解碼它,你得到一個unicode字符串。在這裏你指定編碼。
一種更簡單,更可靠的方法是直接做
u = u"âțâîâ"
,然後才提取字節根據你想要的編碼:
name = u.encode("utf-8")
是的,我正在使用Python 2 –
您正在指定一個python字符串文字,它們的編碼是由您的編輯器的默認設置(或者在您的終端的python解釋器的情況下)確定的。 Python在這方面沒有發言權。
默認情況下,python 2試圖將源代碼解釋爲ASCII。在python 3中,這已被切換爲UTF-8。
請閱讀Python Unicode HOWTO以進一步瞭解Unicode與輸入和輸出編碼的區別。你也應該閱讀Joel Spolksy的article on Unicode。
見http://docs.python.org /howto/unicode.html –
請,**沒有「unicode編碼」這樣的事情**。有Unicode,有編碼。 Unicode是**不是**編碼。 –
@DanielRoseman只是谷歌:「unicode編碼」,也是我的字典中說的:U·ni·code Noun /yo͞oniˌkōd/ 一種國際編碼標準,用於不同的語言和腳本,每個字母,數字或符號被分配給獨特的數值適用於不同的平臺和程序 –