كيفية اكتشاف ترميزات الأحرف في Python
Aspose.HTML FOSS for Python يكشف ترميزات الأحرف من البايتات الخام كما تُحدده المعايير: علامات ترتيب البايت أولاً، ثم التصريحات داخل المحتوى. هذا الدليل يتحقق من تدفق البايتات ويُعَدِّل تسميات الترميز، باستخدام 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().
تُثير ترميز غريب خطأً. الترميزات خارج السجل تُثير الـ typed UnsupportedEncodingError؛ عالجها وأعد الترميز في المصدر إذا كان ذلك ممكنًا.
الأسئلة المتكررة
ماذا تُعيد detect_encoding؟
EncodingDetectionResult مع encoding المكتشف، ومستوى confidence، وtext المفكك.
هل تنظر عملية الاكتشاف إلى وسوم الميتا؟
نعم — يشارك فحص الميتا المسبق للمعايير عبر prescan_meta_charset() عندما لا يكون هناك BOM.
هل يمكنني فك الترميز يدوياً بمجرد معرفتي بالترميز؟
نعم — decode_bytes() يفك الترميز باستخدام ترميز مختار.