Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Cách kiểm tra chuỗi trong Python có phải ASCII không?

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