วิธีที่ง่ายที่สุดคือการวนลูปตรวจสอบตัวอักษรแต่ละตัวในสตริง ว่าอยู่ในช่วง ASCII หรือไม่
ตัวอย่างโค้ด
def is_ascii(s):
return all(ord(c) < 128 for c in s)
print(is_ascii('ÄmsterdÄm'))
ผลลัพธ์
False
แต่วิธีนี้มีประสิทธิภาพต่ำ วิธีที่ดีกว่าคือการใช้ str.decode('ascii') และจับข้อยกเว้น (exception)
ตัวอย่างโค้ด (Python 2)
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
หมายเหตุ: ใน Python 3 ให้ใช้ mystring.encode('ascii') แทน เนื่องจากสตริงเป็น Unicode แล้ว