Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

วิธีตรวจสอบว่า String ใน 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') และจับข้อยกเว้น (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 แล้ว