如何在Python中检查一个字符串是否为ASCII?
最简单的方法是循环遍历字符串中的每个字符,并检查每个字符是否是ASCII字符。
示例
def is_ascii(s):
return all(ord(c) < 128 for c in s)
print is_ascii('ӓmsterdӒm')
输出
这将给出输出结果:
False
但是这种方法非常低效。更好的方法是使用str.decode(‘ascii’)对字符串进行解码并检查是否出现异常。
示例
mystring = 'ӓmsterdӓm'
try:
mystring.decode('ascii')
except UnicodeDecodeError:
print "这不是一个ASCII编码的字符串"
else:
print "这可能是一个ASCII编码的字符串"
输出
这将给出输出结果:
这不是一个ASCII编码的字符串
极客教程