זיהוי קידוד

זיהוי קידוד

HTML מגיע כבתים, ושכבת הקידוד משיבה על השאלה הראשונה של כל צינור עבודה: איזה קידוד, ואיזה טקסט? הזיהוי פועל לפי גישת הסטנדרטים — תחילה סימני סדר בתים (BOM), ולאחר מכן הצהרות בתוך התוכן.


זיהוי מתוך בתים

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() מיישם את הסריקה המוקדמת של הסטנדרטים עבור הצהרות קידוד בתוך המסמך; decode_bytes() מבצע את הפענוח ברגע שנבחר קידוד. קידודים שאינם נתמכים גורמים לזריקת UnsupportedEncodingError המסווג.

שמות קנוניים

תוויות קידוד מגוונות בטבע — latin1, iso-8859-1 ו-us-ascii כולם משמעותם windows-1252 לפי תקן הקידוד. get_canonical_name() ממפה כל תוית רשומה לשמה הקנוני.


טיפים ושיטות מומלצות

  • תסמך על ה-BOM: כאשר הוא קיים, הוא סופי והגלאי מדווח על רמת ביטחון מסוימת
  • נרמל תוויות דרך get_canonical_name() לפני השוואת קידודים
  • השתמש ב-result.text מהזיהוי במקום לפענח מחדש את הבייטים בעצמך

בעיות נפוצות

בעיהסיבהתיקון
BOM מופיע בטקסט המפוענחפענוח ידני במקום detect_encoding()הגילוי מסיר בתים של BOM מ-result.text
השוואת תוויות נכשלהאי-התאמה בין שם קיצור לשם קנונינרמל באמצעות get_canonical_name()
UnsupportedEncodingError הועלהקידוד קלט מחוץ לרישוםטפל בשגיאת הקלדה; קודד מחדש במעלה

FAQ

מה מחזירה הזיהוי?

‏EncodingDetectionResult עם encoding, confidence, ו-text מפוענח.

האם תוויות ישנות מטופלות?

כן — טבלת הכינויים ממפה תוויות כגון latin1 ו-us-ascii לקידודים הקנוניים שלהן.

האם הזיהוי קורא תגי meta?

prescan_meta_charset() מיישם את תקני meta-prescan ומשתתף בזיהוי.


API Reference סיכום

מחלקה/מתודהתיאור
detect_encodingזהה קידוד ופענח בתים
EncodingDetectionResultאובייקט תוצאת זיהוי
sniff_bomבדיקת סימן סדר בתים
prescan_meta_charsetמטה-סריקה מקדימה של תקנים
decode_bytesפענח עם קידוד נבחר
get_canonical_nameהפוך תווית קידוד לקנונית

ראה גם

 עברית