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

  • MyCyberAcademy

    MyCyberAcade

    2 EKİM 2011
  • NYCarspotter

    NYCarspotter

    26 EYLÜL 2011
  • SavageLuxxxGaming - Daily NBA 2K15 & NBA Live 15 Enjoy And Subscribe!

    SavageLuxxxG

    11 Ocak 2013