Unicode 字符串的字符数

Character count of Unicode string

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

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

Char count: 29
Char length: 52

len(s) = 52
? = 29

decode 您的字节字符串(根据它所使用的任何编码,可能是 utf-8)——生成的 Unicode 字符串的 len 就是您所追求的。

如果事实上最佳做法是尽快解码输入,则 处理实际文本(即 unicode,在 Python 2 中;这只是普通字符串的方式,在 Python 3) 在你的代码中,如果需要 encode 就像你再次输出一样。

仅当程序专门针对字节字符串(例如,控制或监视某些硬件设备,&c)时才应在程序中处理字节字符串——更多的程序是关于文本的,因此,除非在某些 I/O 边界,它们应该专门处理 text 字符串(在 Python 2:- 中拼写为 unicode)。

但是如果你确实想将 s 保留为字节串,

len(s.decode('utf-8'))

(或您用来将文本表示为字节字符串的任何其他编码)仍应满足您的要求。

使用 unicode 字符串

    s = 'הוא אוסף אתכם מחר בשלוש וחצי.'
    len(s) #52
    s = u'הוא אוסף אתכם מחר בשלוש וחצי.'
    len(s) #29