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

จะตรวจสอบว่าสตริงใน 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