Kodlama Algılama

Kodlama Algılama

HTML baytlar olarak gelir ve kodlama katmanı herhangi bir işlem hattının ilk sorusuna yanıt verir: hangi kodlama ve hangi metin? Algılama, standart yaklaşıma uyar — önce bayt sırası işaretleri, ardından içerik içi beyanlar.


Baytlardan Algılama

detect_encoding() bir bayt akışını koklar ve algılanan kodlamayı, bir güven seviyesi ve çözülen metni taşıyan bir EncodingDetectionResult döndürür. Bir UTF-8 BOM kesin olarak algılar ve BOM baytları çözülen çıktının dışına çıkarılır:

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)

Algılama Araç Seti

sniff_bom() yalnızca bayt sırası işaretlerini inceler; prescan_meta_charset() belge içi karakter seti beyanları için standart meta-ön taramasını uygular; decode_bytes() bir kodlama seçildikten sonra kod çözmeyi gerçekleştirir. Desteklenmeyen kodlamalar, tiplenmiş UnsupportedEncodingError hatasını ortaya çıkarır.

Kanonik İsimler

Kodlama etiketleri gerçek dünyada farklılık gösterir — latin1, iso-8859-1 ve us-ascii hepsi kodlama standardına göre windows-1252 anlamına gelir. get_canonical_name() kayıtlı herhangi bir etiketi kanonik adına eşler.


İpuçları ve En İyi Uygulamalar

  • BOM’a güvenin: mevcut olduğunda kesin bir göstergedir ve algılayıcı belirli bir güvenilirlik rapor eder.
  • get_canonical_name() aracılığıyla etiketleri normalleştirin kodlamaları karşılaştırmadan önce.
  • Baytları kendiniz yeniden kodlamaktan kaçınarak, tespitten result.text kullanın.

Yaygın Sorunlar

SorunNedenÇözüm
BOM, çözümlenen metinde görünürdetect_encoding() yerine manuel kod çözmeAlgılama, result.text içindeki BOM baytlarını çıkarır
Etiket karşılaştırması başarısız olurTakma ad ile kanonik ad uyumsuzluğuNormalleştir get_canonical_name() ile
UnsupportedEncodingError fırlatıldıGiriş kodlaması kayıt dışıYazılmış hatayı işle; yukarı akışta yeniden kodla

FAQ

Algılama ne döndürür?

Bir EncodingDetectionResult, encoding, confidence ve çözümlenmiş text içerir.

Eski etiketler işleniyor mu?

Evet — alias tablosu, latin1 ve us-ascii gibi etiketleri kanonik kodlamalarına eşler.

Algılama meta etiketlerini okur mu?

prescan_meta_charset(), standart meta-prescan’i uygular ve algılamaya katılır.


API Reference Özeti

Sınıf/YöntemAçıklama
detect_encodingKodlamayı algıla ve baytları çöz
EncodingDetectionResultAlgılama sonucu nesnesi
sniff_bomByte-order-mark incelemesi
prescan_meta_charsetStandartlar meta-ön tarama
decode_bytesSeçilen bir kodlama ile çöz
get_canonical_nameKodlama etiketini kanonikleştir

Ayrıca Bakınız

 Türkçe