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.textkullanın.
Yaygın Sorunlar
| Sorun | Neden | Çözüm |
|---|---|---|
| BOM, çözümlenen metinde görünür | detect_encoding() yerine manuel kod çözme | Algılama, result.text içindeki BOM baytlarını çıkarır |
| Etiket karşılaştırması başarısız olur | Takma ad ile kanonik ad uyumsuzluğu | Normalleş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öntem | Açıklama |
|---|---|
detect_encoding | Kodlamayı algıla ve baytları çöz |
EncodingDetectionResult | Algılama sonucu nesnesi |
sniff_bom | Byte-order-mark incelemesi |
prescan_meta_charset | Standartlar meta-ön tarama |
decode_bytes | Seçilen bir kodlama ile çöz |
get_canonical_name | Kodlama etiketini kanonikleştir |