Cách đơn giản nhất là lặp qua các ký tự của chuỗi và kiểm tra xem mỗi ký tự có phải ASCII hay không.
Ví dụ
def is_ascii(s):
return all(ord(c) < 128 for c in s)
print(is_ascii('ӓmsterdӒm'))
Kết quả
Điều này sẽ cho ra kết quả:
False
Tuy nhiên, phương pháp này rất kém hiệu quả. Cách tốt hơn là giải mã chuỗi bằng str.decode('ascii') và kiểm tra ngoại lệ.
Ví dụ
mystring = 'ӓmsterdӓm'
try:
mystring.decode('ascii')
except UnicodeDecodeError:
print("Không phải chuỗi được mã hóa ASCII")
else:
print("Có thể là chuỗi được mã hóa ASCII")
Kết quả
Điều này sẽ cho ra kết quả:
Không phải chuỗi được mã hóa ASCII