Kodningsdetektering

Kodningsdetektering

HTML kommer som bytes, och kodningslagret svarar på den första frågan i alla pipelines: vilken kodning, och vilken text? Detektering följer standardmetoden — byte-order-markeringar först, sedan deklarationer i innehållet.


Detektera från bytes

detect_encoding() sniffar en byte-ström och returnerar en EncodingDetectionResult som bär den upptäckta kodningen, en förtroendenivå och den avkodade texten. En UTF-8 BOM detekteras som säker, och BOM-bytar tas bort från den avkodade utdata:

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)

Detekteringsverktygssatsen

sniff_bom() inspekterar byte-order-markeringar ensam; prescan_meta_charset() tillämpar standards meta-förskanning för teckenuppsättningsdeklarationer i dokumentet; decode_bytes() utför avkodningen när en kodning har valts. Ej stödda kodningar kastar det typade UnsupportedEncodingError.

Kanoniska namn

Kodningsetiketter varierar i det fria — latin1, iso-8859-1 och us-ascii betyder alla windows-1252 enligt kodningsstandarden. get_canonical_name() mappar varje registrerad etikett till dess kanoniska namn.


Tips och bästa praxis

  • Lita på BOM: när den finns är den definitiv och detektorn rapporterar viss säkerhet
  • Normalisera etiketter via get_canonical_name() innan du jämför kodningar
  • Använd result.text från detektering istället för att själv avkoda bytarna

Vanliga problem

ProblemOrsakÅtgärd
BOM visas i avkodad textManuell avkodning i stället för detect_encoding()Detektering tar bort BOM-bytes från result.text
Etikettjämförelse misslyckasAlias vs kanoniskt namn matchar inteNormalisera med get_canonical_name()
UnsupportedEncodingError kastadesInmatningskodning utanför registretHantera det typade felet; koda om uppströms

FAQ

Vad returnerar detektionen?

En EncodingDetectionResult med encoding, confidence och avkodad text.

Hanteras äldre etiketter?

Ja — alias-tabellen mappar etiketter som latin1 och us-ascii till deras kanoniska kodningar.

Läser detektering meta-taggar?

prescan_meta_charset() implementerar standarden meta-prescan och deltar i detektering.


API Reference Sammanfattning

Klass/MetodBeskrivning
detect_encodingDetektera kodning och avkoda byte
EncodingDetectionResultDetekteringsresultatobjekt
sniff_bomByteordningsmarkörinspektion
prescan_meta_charsetStandarders metaförskanning
decode_bytesDekoda med en vald kodning
get_canonical_nameKanonisera en kodningsetikett

Se även

 Svenska