एन्कोडिंग डिटेक्शन

एन्कोडिंग डिटेक्शन

एन्कोडिंग डिटेक्शन

HTML बाइट्स के रूप में आता है, और एन्कोडिंग लेयर किसी भी पाइपलाइन के पहले प्रश्न का उत्तर देती है: कौन सा एन्कोडिंग, और कौन सा टेक्स्ट? डिटेक्शन मानकों के अनुसार काम करता है — बाइट-ऑर्डर मार्क्स पहले, फिर कंटेंट में घोषणाएँ।


बाइट्स से पहचान

detect_encoding() बाइट स्ट्रीम को सुँघता है और एक EncodingDetectionResult लौटाता है जिसमें पता लगाया गया एन्कोडिंग, एक कॉन्फिडेंस लेवल, और डिकोड किया हुआ टेक्स्ट शामिल होता है। एक UTF-8 BOM निश्चित रूप से पहचानता है, और BOM बाइट्स डिकोडेड आउटपुट से हटाए जाते हैं:

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

डिटेक्शन टूलकिट

sniff_bom() केवल बाइट-ऑर्डर मार्क्स की जाँच करता है; prescan_meta_charset() दस्तावेज़ के भीतर charset घोषणाओं के लिए मानक मेटा-प्रिस्कैन लागू करता है; decode_bytes() एन्कोडिंग चुनने के बाद डिकोड करता है। असमर्थित एन्कोडिंग्स टाइप्ड UnsupportedEncodingError को उत्पन्न करती हैं।

कैनोनिकल नाम

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


टिप्स और सर्वोत्तम प्रथाएँ

  • BOM पर भरोसा करें: जब उपस्थित हो, यह निर्णायक होता है और डिटेक्टर निश्चित भरोसे के साथ रिपोर्ट करता है
  • एन्कोडिंग की तुलना करने से पहले get_canonical_name() के माध्यम से लेबल्स को सामान्यीकृत करें
  • बाइट्स को स्वयं फिर से डिकोड करने के बजाय डिटेक्शन से result.text का उपयोग करें

सामान्य समस्याएँ

समस्याकारणसमाधान
BOM डिकोडेड टेक्स्ट में दिखाई देता हैमैनुअल डिकोड detect_encoding() के बजायडिटेक्शन result.text से BOM बाइट्स हटा देता है
लेबल तुलना विफल हैउपनाम बनाम आधिकारिक नाम में असमानतासामान्यीकृत करें get_canonical_name() के साथ
UnsupportedEncodingError उठाया गयाइनपुट एन्कोडिंग रजिस्ट्री के बाहरटाइप्ड त्रुटि को संभालें; अपस्ट्रीम को पुनः एन्कोड करें

FAQ

डिटेक्शन क्या लौटाता है?

एक EncodingDetectionResult जिसमें encoding, confidence, और डिकोड किया गया text है।

क्या लेगेसी लेबल्स को संभाला जाता है?

हाँ — उपनाम तालिका latin1 और us-ascii जैसे लेबल्स को उनके मानक एन्कोडिंग्स में मैप करती है।

क्या डिटेक्शन मेटा टैग पढ़ता है?

prescan_meta_charset() मानक meta-prescan को लागू करता है और डिटेक्शन में भाग लेता है।


API Reference सारांश

क्लास/मेथडविवरण
detect_encodingएन्कोडिंग का पता लगाएँ और बाइट्स को डिकोड करें
EncodingDetectionResultपता लगाने का परिणाम ऑब्जेक्ट
sniff_bomबाइट-ऑर्डर-मार्क निरीक्षण
prescan_meta_charsetमानकों का मेटा-प्रीस्कैन
decode_bytesचुने हुए एन्कोडिंग के साथ डिकोड करें
get_canonical_nameएक एन्कोडिंग लेबल को Canonicalize करें

यह भी देखें

 हिन्दी