在Linux中,我打開終端和輸入python2.7然後輸入代碼如下越來越糊塗:python2.7如何處理unicode?我
>>> s = u'\u0561'
>>> print s
ա
>>> len(s)
1
u的長度「\ u0561」是隻有1?爲什麼?我瞭解到,每個非字母字符的長度都是unicode中的2〜4個字節,爲什麼它只使用1個字節?我測試了其他的unicode字符,我發現幾乎所有的unicode字符的長度都是1,爲什麼?
在Linux中,我打開終端和輸入python2.7然後輸入代碼如下越來越糊塗:python2.7如何處理unicode?我
>>> s = u'\u0561'
>>> print s
ա
>>> len(s)
1
u的長度「\ u0561」是隻有1?爲什麼?我瞭解到,每個非字母字符的長度都是unicode中的2〜4個字節,爲什麼它只使用1個字節?我測試了其他的unicode字符,我發現幾乎所有的unicode字符的長度都是1,爲什麼?
它給你的字符長度,而不是字節。
\u0561
這是一個字符,所以長度是一個。
u'\ u0561'的長度只有1?爲什麼?
因爲ա是一個字符。
換句話說,對於同樣的原因,的['hi mom this is an incredibly long string']
的len()
爲1:因爲'hi mom this is an incredibly long string'
是一個列表項。
讓我微笑:-) – aitchnyu
只是爲了讓你感到困惑,請在狹窄的版本(即'sys.maxuincode == 0xffff'):'len(u'\ U00010000')'試試這個。 – eryksun