Skip to main content
 首页 » 编程设计

python之一个 unicode 字符串中有多少个可显示字符(日文/中文)

2025年05月04日12kerrycode

我需要知道包含日文/中文字符的 unicode 字符串中有多少个可显示字符。

使问题变得非常明显的示例代码:

# -*- coding: UTF-8 -*- 
str = '\xe7\x9d\xa1\xe7\x9c\xa0\xe6\x99\x82\xe9\x96\x93' 
print len(str) 

12

print str 

sleep 时间<<< 注意显示了四个字符

我如何从字符串中知道要显示 4 个字符?

请您参考如下方法:

这个字符串

str = '\xe7\x9d\xa1\xe7\x9c\xa0\xe6\x99\x82\xe9\x96\x93' 

是 unicode 代码点 的编码表示。它包含字节,len(str) 返回您的字节数。

您想知道,有多少个 unicode 代码包含该字符串。为此,您需要知道使用什么编码来对这些 un​​icode 代码进行编码。最流行的编码是 utf8。在 utf8 编码中,一个 unicode 代码点可以占用 1 到 6 个字节。但是你一定不记得了,只是解码字符串:

>>> str.decode('utf8') 
u'\u7761\u7720\u6642\u9593' 

在这里你可以看到 4 个 unicode 点。 打印它,查看可打印版本:

>>> print str.decode('utf8') 
睡眠時間 

并获取 unicode 代码的数量:

>>> len(str.decode('utf8')) 
4 

更新:另请参阅 abarnert answer尊重所有可能的情况。