如何在python中获取下面的字符数?
s = 'הוא אוסף אתכם מחר בשלוש וחצי.'
Char count: 29
Char length: 52
len(s) = 52
? = 29
答案 0 :(得分:7)
decode
你的字节字符串(根据它的编码,utf-8可能) - 结果Unicode字符串的len
就是你所追求的。
如果事实上最佳做法是尽快解码输入,则在Python 2中使用实际文本(即unicode
)处理 ;这只是普通字符串的方式, Python 3)在您的代码中,如果需要encode
就像您再次输出一样。
字节字符串应该只在你的程序中处理,如果它特别是关于字节字符串(例如,控制或监视某些硬件设备,& c) - 更多的程序是关于文本的,因此,除了在某些我不可或缺的地方/ O边界,它们应该专门处理文本字符串(在Python 2中拼写为unicode
: - )。
但是如果你确实希望将s
保留为字节串,那么
len(s.decode('utf-8'))
(或者您用来将文本表示为字节字符串的任何其他编码)应该仍然按照您的要求执行。
答案 1 :(得分:3)
使用unicode字符串
s = 'הוא אוסף אתכם מחר בשלוש וחצי.'
len(s) #52
s = u'הוא אוסף אתכם מחר בשלוש וחצי.'
len(s) #29