कैसे पता करें Python में कैरेक्टर एन्कोडिंग

कैसे पता करें Python में कैरेक्टर एन्कोडिंग

Aspose.HTML Python के लिए FOSS कच्चे बाइट्स से कैरेक्टर एन्कोडिंग्स का पता लगाता है जैसा कि मानक निर्धारित करते हैं: पहले बाइट-ऑर्डर मार्क, फिर सामग्री में घोषणाएँ। यह गाइड एक बाइट स्ट्रीम को स्निफ़ करता है और एन्कोडिंग लेबल्स को सामान्यीकृत करता है, इंस्टॉल करने के लिए pip का उपयोग करता है।

चरण-दर-चरण गाइड

चरण 1: पैकेज स्थापित करें

git clone https://github.com/aspose-html-foss/Aspose.HTML-FOSS-for-Python.git
cd Aspose.HTML-FOSS-for-Python
pip install -e .

चरण 2: आवश्यक फ़ंक्शन आयात करें

from aspose_html.encoding.detection import detect_encoding

चरण 3: बाइट स्ट्रीम की एन्कोडिंग का पता लगाएँ

एक UTF-8 BOM कुछ निश्चित भरोसे के साथ पता चलता है, और BOM बाइट्स को डिकोडेड टेक्स्ट से हटा दिया जाता है:

result = detect_encoding(b"\xef\xbb\xbf<p>x</p>")
print(result.encoding)
print(result.confidence)
print(result.text)

चरण 4: एन्कोडिंग लेबल्स को सामान्यीकृत करें

पुराने लेबल्स कैनॉनिकल नामों से मैप होते हैं — latin1, iso-8859-1, और us-ascii सभी windows-1252 हैं एन्कोडिंग मानक के अनुसार। तुलना से पहले लेबल्स को सामान्यीकृत करने के लिए समान मॉड्यूल परिवार से get_canonical_name() का उपयोग करें।

सामान्य समस्याएँ और समाधान

मेरे डिकोड किए गए टेक्स्ट में एक BOM दिखाई देता है। यह मैनुअल डिकोडिंग के साथ होता है; detect_encoding() से BOM बाइट्स हटाता है result.text.

समकक्ष लेबलों के लिए एन्कोडिंग तुलना विफल हो जाती है। कैनोनिकल नामों की तुलना करें, कच्चे लेबलों की नहीं — दोनों पक्षों को इसके साथ सामान्यीकृत करें get_canonical_name().

एक विदेशी एन्कोडिंग त्रुटि उत्पन्न करती है। रजिस्ट्री के बाहर की एन्कोडिंग्स टाइप्ड को उठाती हैं UnsupportedEncodingError; इसे संभालें और यदि संभव हो तो अपस्ट्रीम में पुनः एन्कोड करें।

अक्सर पूछे जाने वाले प्रश्न

detect_encoding क्या लौटाता है?

एक EncodingDetectionResult जिसमें पता चला encoding, एक confidence स्तर, और डिकोड किया गया text।

क्या डिटेक्शन मेटा टैग्स को देखता है?

हाँ — मानक मेटा-प्रिस्कैन prescan_meta_charset() के माध्यम से भाग लेता है जब कोई BOM मौजूद नहीं होता।

क्या मैं एन्कोडिंग जानने के बाद मैन्युअल रूप से डिकोड कर सकता हूँ?

हाँ — decode_bytes() चुनी हुई एन्कोडिंग के साथ डिकोड करता है।

यह भी देखें

 हिन्दी