我如何在python中获得下面的字符数?
s = '??? ???? ???? ??? ????? ????.'
Char count: 29
Char length: 52
len(s) = 52
? = 29
Run Code Online (Sandbox Code Playgroud)
decode你的字节串(根据它所在的编码,也许是utf-8) - len得到的Unicode字符串就是你所追求的.
如果事实上最佳实践是尽快解码输入,那么只需处理实际文本(例如unicode,在Python 2中;它只是普通字符串的方式,在Python 3中),如果需要encode,就像你一样再次输出.
字节字符串只应在程序中处理,只要它特别是字节字符串(例如,控制或监视某些硬件设备,&c) - 更多的程序是关于文本的,因此,除了在某些I/O边界必不可少的情况下,它们应该专门处理文本字符串(拼写unicode在Python 2 :-).
但是如果你确实想要保持s字节串,
len(s.decode('utf-8'))
Run Code Online (Sandbox Code Playgroud)
(或者您用来将文本表示为字节字符串的任何其他编码)仍然应该按照您的要求执行.
| 归档时间: |
|
| 查看次数: |
2989 次 |
| 最近记录: |