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
如何在 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