Page 86 - python
P. 86
60
พารามิเตอร คําอธิบาย
error ความผิดพลาดเมื่อพบขอความที่เขารหัสไมได
ี
'backslashreplace' แทนทดวยเครองหมาย backslash
่
ื
่
'ignore' ไมตองสนใจตัวอักษรที่เขารหัสไมได
ี
ั
'namereplace' แทนทตวอกษรดวยคาทีระบุไว
่
ํ
่
ั
'strict' สรางเหตการณความผดพลาด
ิ
ุ
'replace' แทนที่ดวยเครื่องหมายคําถาม
'xmlcharrefreplace' แทนที่ดวยตัวอักษร xml
ตัวอยางที่ 5.25 การแสดงคาตัวอักษร ASCII ภายใน ascii_letters
s = "Informåtion Science"
print(s.encode(encoding="ascii",errors="backslashreplace"))
print(s.encode(encoding="ascii",errors="ignore"))
print(s.encode(encoding="ascii",errors="namereplace"))
print(s.encode(encoding="ascii",errors="replace"))
print(s.encode(encoding="ascii",errors="xmlcharrefreplace"))
print("%s\n%s\n%s\n%s\n%s"%(a,b,c,d,e))
ผลลัพธ :
b'Inform\\xe5tion Science'
b'Informtion Science'
b'Inform\\N{LATIN SMALL LETTER A WITH RING ABOVE}tion Science'
b'Inform?tion Science'
b'Informåtion Science'
ตัวอยางที่ 5.25 ประกาศตัวแปร s มคา "Informåtion Science" มีอักขระพิเศษภายในสตริง คือ
ี
ี้
ํ
"å" ตองการเขารหัสขอความเปนรหัสแอสก (ascii) โดยกาหนดความผิดพลาดและการซอมแซมความ
ผิดพลาดของตัวอกษรดังนี้ "backslashreplace" คือ เมื่อพบความผิดพลาดใหใสเครื่องหมาย backslash
ั
ํ
ผลลัพธ คือ b'Inform\\xe5tion Science' เมื่อกาหนดความผิดพลาดเปน errors="ignore" จะไมสนใจ
อักขระพิเศษนั้น เมื่อกําหนด errors="namereplace" จะแทนที่สัญลักษณที่ทําใหเกดความผิดพลาดดวย
ิ
namereplace ในตัวอยางนี้คือ "\\N{LATIN SMALL LETTER A WITH RING ABOVE" เมื่อกาหนด
ํ
ื
่
errors="replace" จะแทนดวยเครองหมายคําถาม ผลลัพธ คือ b'Inform?tion Science' และเมื่อกําหนด
errors="xmlcharrefreplace" ผลลัพธจะแทนสัญลักษณพิเศษดวยสัญลักษณ XML ผลลัพธ คือ
b'Informåtion Science'