เป็นไปได้ว่าปัญหาของคุณคือคุณแยกวิเคราะห์ได้แล้วและตอนนี้คุณกำลังพยายามพิมพ์เนื้อหาของ XML แต่ไม่สามารถทำได้เนื่องจากมีอักขระ Unicode แปลกปลอมอยู่ ลองเข้ารหัสสตริง Unicode ของคุณเป็น ascii ก่อน:
unicodeData.encode('ascii', 'ignore')
ส่วน "ละเว้น" จะบอกให้ข้ามอักขระเหล่านั้นไป จากเอกสาร python:
>>> u = unichr(40960) + u'abcd' + unichr(1972)
>>> u.encode('utf-8')
'\xea\x80\x80abcd\xde\xb4'
>>> u.encode('ascii')
Traceback (most recent call last):
File "<stdin>", line 1, in ?
UnicodeEncodeError: 'ascii' codec can't encode character '\ua000' in position 0: ordinal not in range(128)
>>> u.encode('ascii', 'ignore')
'abcd'
>>> u.encode('ascii', 'replace')
'?abcd?'
>>> u.encode('ascii', 'xmlcharrefreplace')
'ꀀabcd޴'
คุณอาจต้องการอ่านบทความนี้: http://www.joelonsoftware.com/articles/Unicode.htmlซึ่งฉันพบว่ามีประโยชน์มากในการสอนขั้นพื้นฐานเกี่ยวกับสิ่งที่เกิดขึ้น หลังจากอ่านแล้วคุณจะหยุดรู้สึกว่าคุณแค่เดาคำสั่งที่จะใช้ (หรืออย่างน้อยก็เกิดขึ้นกับฉัน)
unicode()
หรือไม่?