SORU
12 Ocak 2009, PAZARTESİ


Python: bir metin dosyasının kodlamasını belirlemek için var mı?

Bir şey here gömülü olduğunu biliyorum. Ama eğer gerçek bir Python içine metin dosyası kodlama belirlemek için inşa olup olmadığını merak ediyorum?

Yardımınız için teşekkürler

Bir yan, Eğer isterseniz göz ardı edilebilir ama neden kodlama türünü daha kolay tespit olabilir bu yüzden dosyanın içine koydum? " Gibi düzenleyin:

CEVAP
12 Ocak 2009, PAZARTESİ


Doğru kodlama algılama olabilirimkansız.

(Chardet SSS:)

Ancak, bazı kodlamalar getirilmiştir Belirli diller ve diller için rastgele değildir. Bazı karakter dizileri her zaman, bir süre sonra pop diğer diziler anlamsız. Bir açan kişi İngilizce akıcı ve “2 txzqJv!bulur Gazetesi dasd0a QqdKjvz” anında tanır öyle olsa bile İngilizce değil Tamamen İngilizce harfler) oluşur. “Tipik” metin, bir sürü inceleyerek bilgisayar algoritması bu taklit edebilir biraz akıcılık ve eğitimli olun bir metnin dili hakkında sanırım.

Bu çalışmada kodlama algılamaya kullanan chardet kütüphane var. chardet otomatik algılama Mozilla kod bir liman.

Ayrıca UnicodeDammit kullanabilirsiniz. Aşağıdaki yöntemleri deneyin:

  • Bir kodlama belge bulundu kendisi: XML örneği için, ilanı ya da (HTML belgeleri için) http-eşdeğeri META etiketi. Eğer Güzel Çorba belge içinde kodlama bu tür bulursa, belge baştan ayrıştırır ve yeni kodlamayı bir deneyin verir. Belgede bulduğu herhangi bir kodlama göz ardı eder. tek istisna ise, açıkça bir kodlama belirtilmişse, kodlama ve gerçekten işe yaradı:
  • Bir kodlama dosyanın ilk birkaç baytını bakarak kokladı. Eğer bir kodlama bu aşamada tespit edilirse, UTF-kodlamaları, EBCDIC, ASCII ya da biri olacak.
  • Bir kodlama eğer yüklüyse chardet kütüphane tarafından kokladı,.
  • UTF-8
  • Windows-1252

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Miles Fisher

    Miles Fisher

    8 NİSAN 2009
  • sdasmarchives

    sdasmarchive

    2 HAZİRAN 2010