Có thể, vấn đề của bạn là bạn đã phân tích cú pháp nó không sao, và bây giờ bạn đang cố in nội dung của XML và bạn không thể vì có một số ký tự Unicode ngoại lai. Trước tiên, hãy thử mã hóa chuỗi unicode của bạn dưới dạng ascii:
unicodeData.encode('ascii', 'ignore')
phần 'bỏ qua' sẽ yêu cầu nó bỏ qua các ký tự đó. Từ tài liệu về trăn:
>>> 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޴'
Bạn có thể muốn đọc bài viết này: http://www.joelonsoftware.com/articles/Unicode.html , mà tôi thấy rất hữu ích như một hướng dẫn cơ bản về những gì đang xảy ra. Sau khi đọc xong, bạn sẽ không còn cảm thấy như mình chỉ đang đoán những lệnh sẽ sử dụng (hoặc ít nhất là điều đó đã xảy ra với tôi).
unicode()
không?