Rilevamento della codifica

Rilevamento della codifica

Rilevamento della codifica

HTML arriva come byte, e il livello di codifica risponde alla prima domanda di qualsiasi pipeline: quale codifica e quale testo? Il rilevamento segue l’approccio standard — prima i byte-order marks, poi le dichiarazioni nel contenuto.


Rilevamento dai byte

detect_encoding() annusa un flusso di byte e restituisce un EncodingDetectionResult contenente la codifica rilevata, un livello di confidenza e il testo decodificato. Un UTF-8 BOM rileva con certezza, e i byte del BOM vengono rimossi dall’output decodificato:

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)

Il toolkit di rilevamento

sniff_bom() ispeziona solo i byte-order marks; prescan_meta_charset() applica il meta-prescan standard per le dichiarazioni di charset all’interno del documento; decode_bytes() esegue la decodifica una volta scelta una codifica. Le codifiche non supportate sollevano il UnsupportedEncodingError tipizzato.

Nomi canonici

Le etichette di codifica variano in natura — latin1, iso-8859-1 e us-ascii significano tutti windows-1252 secondo lo standard di codifica. get_canonical_name() mappa qualsiasi etichetta registrata al suo nome canonico.


Suggerimenti e migliori pratiche

  • Fidati del BOM: quando è presente, è definitivo e il rilevatore segnala una certa sicurezza
  • Normalizza le etichette tramite get_canonical_name() prima di confrontare le codifiche
  • Usa result.text dalla rilevazione invece di ricodificare i byte da solo

Problemi comuni

ProblemaCausaCorrezione
Il BOM appare nel testo decodificatoDecodifica manuale invece di detect_encoding()Il rilevamento rimuove i byte BOM da result.text
Il confronto delle etichette fallisceDiscrepanza tra alias e nome canonicoNormalizza con get_canonical_name()
UnsupportedEncodingError sollevatoCodifica di input al di fuori del registroGestisci l’errore tipizzato; ricodifica a monte

FAQ

Cosa restituisce la rilevazione?

Un EncodingDetectionResult con encoding, confidence e text decodificato.

Le etichette legacy sono gestite?

Sì — la tabella degli alias mappa le etichette come latin1 e us-ascii alle loro codifiche canoniche.

Il rilevamento legge i meta tag?

prescan_meta_charset() implementa lo standard meta-prescan e partecipa al rilevamento.


API Reference Riepilogo

Classe/MetodoDescrizione
detect_encodingRileva la codifica e decodifica i byte
EncodingDetectionResultOggetto risultato della rilevazione
sniff_bomIspezione del Byte-order-mark
prescan_meta_charsetStandard meta-prescan
decode_bytesDecodifica con una codifica scelta
get_canonical_nameCanonicalizzare un’etichetta di codifica

Vedi anche

 Italiano