我怎麼會得到下面的Python中字符數?Unicode字符串的字符數
s = 'הוא אוסף אתכם מחר בשלוש וחצי.'
Char count: 29
Char length: 52
len(s) = 52
? = 29
我怎麼會得到下面的Python中字符數?Unicode字符串的字符數
s = 'הוא אוסף אתכם מחר בשלוש וחצי.'
Char count: 29
Char length: 52
len(s) = 52
? = 29
decode
您的字節串(根據它在任何編碼,UTF-8可能) - 生成的Unicode字符串的len
是你追求的。
如果其實最好的做法是儘快投入解碼,處理只有與實際文本(即unicode
,在Python 2,這是現在的樣子普通的字符串,在Python 3)在你的代碼,並如果需要encode
就像您再次輸出一樣。
字節字符串應該在程序中處理,只有在字節字符串專用時(例如,控制或監視某個硬件設備,& c) - 更多的程序是關於文本的,因此除了在某些情況下不可或缺的地方/ O的界限,就應該專門處理文本字符串(在Python 2 :-)拼寫unicode
。
但是,如果你想保持s
不過作爲一個字節字符串,
len(s.decode('utf-8'))
(或任何其他你使用來表示文字的字節串編碼),還是應該做你要求什麼。
使用unicode字符串
s = 'הוא אוסף אתכם מחר בשלוש וחצי.'
len(s) #52
s = u'הוא אוסף אתכם מחר בשלוש וחצי.'
len(s) #29
我得到'在input'不支持的字符。 – 2015-01-26 22:44:19
我不明白。 – 2015-01-26 22:45:21
也許是Python 2的東西? – 2015-01-26 22:46:58