Oto częsty błąd w kontaktach z UTF-8 - „nieważne tokeny”Python UTF-8 XML parsowania (mydlin): Usuwanie „Nieprawidłowy token”
W moim przykładzie, chodzi od czynienia z dostawcą usług SOAP że nie miał szacunku dla znaków unicode, po prostu obcinanie wartości do 100 bajtów, a zaniedbując że 100'th bajt może być w środku znaku multi-bajtowego: na przykład:
<name xsi:type="xsd:string">浙江家庭教会五十人遭驱散及抓打 圣诞节聚会被断电及抢走物品(图、视频\xef\xbc</name>
ostatnie dwa bajty są co resztki 3-bajtowego znaku Unicode, po tym, jak nóż ścinający założył, że świat używa znaków 1-bajtowych. Następny przystanek, parser sax i:
xml.sax._exceptions.SAXParseException: <unknown>:1:2392: not well-formed (invalid token)
Nie obchodzi mnie już ta postać. Powinien zostać usunięty z dokumentu i umożliwić działanie analizatora składni saks.
Odpowiedź XML jest ważna pod każdym innym względem, z wyjątkiem tych wartości.
Pytanie: Jak usunąć tę postać bez analizowania całego dokumentu i ponownego wynalezienia kodowania UTF-8 w celu sprawdzenia każdego bajtu?
Zastosowanie: Python + mydliny
tak, po prostu odpowiedział na moje własne pytanie. : P – FlipMcF
Dobry dla ciebie. +1. – sberry
Odznaka Self Learner zarobiona ... (to było naprawdę ważne!) Dziękuję. – FlipMcF