如何检查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 "Not an ASCII-encoded string"
else:
    print "May be an ASCII-encoded string"

输出结果

这将给出输出:

Not an ASCII-encoded string