java - Tell SAX Parser to ignore invalid characters? -
SAX निम्न अपवाद पर मरने पर रहता है:
3-बाइट के अमान्य बाइट 2 यूटीएफ -8 अनुक्रम
समस्या इसकी ज्यादातर सही ढंग से यूटीएफ -8 एन्कोडेड है लेकिन इसमें कुछ त्रुटियां हैं हम फ़ाइल का एक नया संस्करण नहीं प्राप्त कर सकते हैं, हमें इस फाइल का उपयोग करना है।
तो हम एसएएक्स को कैसे अमान्य वर्ण अनुक्रमों को नजरअंदाज करने के लिए कहें, या यूटीएफ -8 फाइल को साफ़ करें जिससे कि यह नहीं अमान्य यूटीएफ -8 के अनुक्रम हैं?
मैं सुझाव देता हूं कि आप फ़ाइल को पूरी तरह से इसे XML के रूप में पार्स करने से अलग कदम।
UTF-8 समझने के लिए काफी आसान एन्कोडिंग है; यह दर्शाता है कि यूटीएफ -8 का गठन कैसे किया जाता है। मैं सुझाव देता हूं कि आप एक प्रोग्राम लिखते हैं जो आपकी इनपुट फ़ाइल में पढ़ता है और एक नई फ़ाइल लिखता है। यह बाइट द्वारा बाइट पढ़ता है, केवल एक वर्ण लिख रहा है जब यह देखता है कि यह मान्य रूप से बनाई गई है। जब यह एक अमान्य बाइट देखता है, तो यह "UTF8ERROR" स्ट्रिंग या किसी अन्य आसानी से खोजने योग्य टोकन को लिख देगा जो इनपुट डेटा में स्वाभाविक रूप से नहीं होगा। यह तब शेष चरित्र को छोड़ देगा।
बाद में, आप त्रुटियों की जांच कर सकते हैं और डेटा को ठीक कर सकते हैं ... फिर इसे सामान्य रूप में पार्स कर दें।
इस तरह आप देखेंगे कि कैसे त्रुटियों की व्यापकता है, देखें कि क्या उनके पास कोई पैटर्न है, और संभावित रूप से उन्हें ठीक करने में सक्षम हो। यदि आप एक ही स्रोत से अधिक डेटा प्राप्त करने जा रहे हैं, तो मैं आपको प्रोत्साहित करता हूं कि आप उन्हें इस मुद्दे के बारे में बताने के लिए प्रोत्साहित करें ... यह उनके पक्ष में अधिक गंभीर समस्या का संकेत दे सकता है।
Comments
Post a Comment