Python içinde Karakter Kodlamalarını Nasıl Algılayabilirsiniz
Aspose.HTML Python için FOSS, ham baytlardan karakter kodlamalarını standartların belirttiği şekilde algılar: önce bayt sırası işaretleri, ardından içerik içi bildirimler. Bu kılavuz bir bayt akışını tarar ve kodlama etiketlerini normalleştirir, kurulum için pip kullanır.
Adım Adım Kılavuz
Adım 1: Paketi Kurun
git clone https://github.com/aspose-html-foss/Aspose.HTML-FOSS-for-Python.git
cd Aspose.HTML-FOSS-for-Python
pip install -e .Adım 2: Gerekli Fonksiyonları İçe Aktarın
from aspose_html.encoding.detection import detect_encodingAdım 3: Bir Bayt Akışının Kodlamasını Algılayın
Belirli bir güvenle bir UTF-8 BOM algılanır ve BOM baytları çözümlenmiş metinden kaldırılır:
result = detect_encoding(b"\xef\xbb\xbf<p>x</p>")
print(result.encoding)
print(result.confidence)
print(result.text)Adım 4: Kodlama Etiketlerini Normalleştir
Eski etiketler kanonik isimlere eşlenir — latin1, iso-8859-1 ve us-ascii kodlama standardına göre hepsi windows-1252. Karşılaştırmalardan önce etiketleri normalleştirmek için aynı modül ailesinden get_canonical_name() kullanın.
Yaygın Sorunlar ve Çözümler
Bir BOM, çözümlenmiş metnimde görünüyor. Bu, manuel kod çözme sırasında olur; detect_encoding() BOM baytlarını şuradan temizler result.text.
Kodlama karşılaştırmaları eşdeğer etiketler için başarısız olur. Kanonik adları karşılaştır, ham etiketleri değil — her iki tarafı şununla normalleştir get_canonical_name().
Egzotik bir kodlama bir hata üretir. Kayıt dışındaki kodlamalar tiplenmiş hatayı yükseltir UnsupportedEncodingError; bunu ele al ve mümkünse yukarı akışta yeniden kodla.
Sıkça Sorulan Sorular
detect_encoding ne döndürür?
Algılanan encoding ile bir EncodingDetectionResult, confidence seviyesinde ve çözülen text.
Algılama meta etiketlerine bakar mı?
Evet — BOM bulunmadığında standart meta-ön tarama prescan_meta_charset() aracılığıyla katılır.
Kodlamayı bildiğimde manuel olarak çözebilir miyim?
Evet — decode_bytes() seçilen bir kodlama ile çözer.