यहाँ एक सामान्य त्रुटि जब UTF-8 के साथ काम कर रहा है निकाला जा रहा है - 'अमान्य टोकन'अजगर UTF-8 XML पार्सिंग (साबुन का झाग): 'अमान्य टोकन'
मेरे उदाहरण में, यह एक सोप सेवा प्रदाता के साथ काम से आता है कि यूनिकोड वर्ण के लिए कोई सम्मान नहीं था, बस 100 बाइट्स मूल्यों को छोटा और उपेक्षा कि 100'th बाइट एक बहु बाइट वर्ण के बीच में हो सकता है: उदाहरण के लिए:
<name xsi:type="xsd:string">浙江家庭教会五十人遭驱散及抓打 圣诞节聚会被断电及抢走物品(图、视频\xef\xbc</name>
पिछले दो बाइट्स क्या कर रहे हैं एक 3 बाइट यूनिकोड चरित्र के अवशेष, छिड़काव चाकू के बाद माना जाता है कि दुनिया 1-बाइट वर्णों का उपयोग करती है। अगला स्टॉप, सैक्स पार्सर और:
xml.sax._exceptions.SAXParseException: <unknown>:1:2392: not well-formed (invalid token)
मुझे अब इस चरित्र की परवाह नहीं है। इसे दस्तावेज़ से हटा दिया जाना चाहिए और sax पार्सर को कार्य करने की अनुमति दें।
एक्सएमएल उत्तर इन मानों को छोड़कर हर दूसरे सम्मान में मान्य है।
प्रश्न: आप पूरे दस्तावेज़ को पार्स किए बिना इस चरित्र को कैसे हटा सकते हैं और प्रत्येक बाइट को जांचने के लिए यूटीएफ -8 एन्कोडिंग का पुन: आविष्कार कैसे कर सकते हैं?
का उपयोग करना: अजगर + साबुन का झाग
हाँ, मैं सिर्फ अपने ही सवाल का जवाब दे। : पी – FlipMcF
आपके लिए अच्छा है। +1। – sberry
स्वयं लर्नर बैज अर्जित किया ... (वह मुद्दा था, वास्तव में!) धन्यवाद। – FlipMcF