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/