Dưới đây là một lỗi phổ biến khi giao dịch với UTF-8 - 'thẻ không hợp lệ'Python UTF-8 XML phân tích cú pháp (bọt): Loại bỏ 'dấu hiệu không hợp lệ'
Trong ví dụ của tôi, Nó xuất phát từ đối phó với một nhà cung cấp dịch vụ SOAP mà không có sự tôn trọng đối với các ký tự unicode, chỉ cần cắt bỏ các giá trị đến 100 byte và bỏ qua rằng byte 100'th có thể ở giữa một nhân vật đa byte: ví dụ:
<name xsi:type="xsd:string">浙江家庭教会五十人遭驱散及抓打 圣诞节聚会被断电及抢走物品(图、视频\xef\xbc</name>
hai byte cuối cùng là gì còn lại của một ký tự unicode 3 byte, sau khi con dao cắt ngắn giả định rằng thế giới sử dụng các ký tự 1 byte. Điểm dừng tiếp theo, trình phân tích cú pháp sax và:
xml.sax._exceptions.SAXParseException: <unknown>:1:2392: not well-formed (invalid token)
Tôi không quan tâm đến nhân vật này nữa. Nó phải được loại bỏ khỏi tài liệu và cho phép trình phân tích cú pháp sax hoạt động.
Trả lời XML hợp lệ ở mọi khía cạnh khác ngoại trừ các giá trị này.
Câu hỏi: Làm thế nào để bạn loại bỏ ký tự này mà không phân tích cú pháp toàn bộ tài liệu và tái phát minh mã hóa UTF-8 để kiểm tra từng byte?
Sử dụng: Python + bọt
vâng, tôi vừa trả lời câu hỏi của riêng mình. : P – FlipMcF
Tốt cho bạn. +1. – sberry
Huy hiệu Self Learner kiếm được ... (đó là điểm, thực sự!) Cảm ơn bạn. – FlipMcF