Unicode字符串的字符数

时间:2015-01-26 22:40:22

标签: python unicode

如何在python中获取下面的字符数?

s = 'הוא אוסף אתכם מחר בשלוש וחצי.'

Char count: 29
Char length: 52

len(s) = 52
? = 29

2 个答案:

答案 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