python - 如何在 python 中检查 Unicode 字符

标签 python unicode

def order_check_uni(body):  
    ccnt=0  
    for x in body:    
        if x.isUpper():  
            ccnt+=1  
        if ccnt>2:  
            print 'success'   

我尝试查找非 ASCII 字符或特殊字符或 unicode 字符或西里尔字符,如 абвгдеёжзийклмнопрстуфхцчшщъыьэюя ®©™在带有该脚本的字符串正文中,我尝试替换 isUpper()isascii()len(x) == len(x.encode) , 与 unichr()和其他功能但仍然发现错误,有人可以帮助我吗?

最佳答案

for x in body:
    if ord(x) > 127:
        # character is *not* ASCII

如果你有一个 Unicode 字符串,这就有效。如果您只想检测字符串是否包含 非 ASCII 字符,它也适用于 UTF-8 编码的字节字符串。

Python 3 更新:以上内容仍然适用于 Unicode 字符串,但 ord 不再适用于字节字符串。但这没关系,因为索引到字节字符串已经返回一个整数 - 不需要转换!代码变得更加简单,特别是如果您将它与 any 函数结合使用:

if any(x > 127 for x in body):
    # string is *not* ASCII

关于python - 如何在 python 中检查 Unicode 字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32004442/

相关文章:

python - 如何使用 TensorFlow 中的官方 Batch Normalization 层?

python - 如何限制正则表达式的 findall() 方法

python - 如何使用 BeautifulSoup 用 div 容器包裹正文内容

Python 和 Unicode : How everything should be Unicode

Java File 无法打开某些文件

python - 如何在 Python 中从图像中读取文本的颜色

python - 将重音与字母分开

unicode - 如何显示遗留计算的那些Unicode符号?

c# - 正则表达式未使用 Unicode 字符范围

python - 如何解决蛇壁传送的bug