Nasıl bir metin dosyası kodlama/kod algılayabilir miyim
Bizim uygulamada, metin dosyaları (.txt
, .csv
, vb.) elimize çeşitli kaynaklardan. Okurken, bu dosyalar bazen farklı/bilinmeyen bir kod sayfası içinde oluşturulan dosyaları, çünkü çöp içerir.
Bir şekilde (otomatik olarak) bir metin dosyasının kod tespit var mı?
detectEncodingFromByteOrderMarks
, StreamReader
yapıcı, çalışmalar için UTF8
ve diğer unicode işaretli dosyaları, ama aradığım bir şekilde algılamak için kod sayfaları gibi ibm850
, windows1252
.
Cevaplarınız için teşekkürler, bu yaptıklarım.
Aldığımız dosyalar kod sayfaları hakkında bir ipucu yok son kullanıcılar,. Alıcılar da son kullanıcılar, artık bu kod sayfaları hakkında ne biliyorlar: kod Sayfaları var, ve rahatsız edici.
Çözüm:
- Not Defteri'nde alınan dosyayı açın, metnin bozuk bir parça bak. Eğer biri François falan, insan zekası ile çağrılırsa bu tahmin edebilirsiniz.
- Kullanıcı dosyayı açın ve bu kullanıcı doğru kod kullanıldığında, dosya, görünür bilir bir metin girmek için kullanabileceğiniz küçük bir uygulama yaptım.
- Tüm döngü kod sayfaları ve kullanıcı verilen metin ile bir çözüm vermek olanları görüntüler.
- Eğer daha fazla gibi bir kod sayfası açılır, kullanıcı daha fazla metin belirtmek isteriz.
CEVAP
Kod algılayamaz, bunun söylenmesi gerekir. Bayt analiz ve tahmin edebilirsiniz, ama bu garip bazen komik bazı sonuçlar verebilir. Şimdi bulamıyorum ama Not Defteri Çince, İngilizce metin görüntülemek için kandırılmış olabilir eminim.
Her neyse, bu okumak gerekir: The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!).
Özellikle Joel diyor ki:
Kodlamalar Hakkında Tek Ve En Önemli Gerçek
Tamamen anlattığım her şeyi unutun, lütfen hatırlayın son derece önemli aslında. Anlamda kullandığını bilmeden bir dize için yapmaz. Artık kafanı kuma sokup "normal" metin ASCII.bu gibi davranabilirsin Düz Metin Olarak Böyle bir Şey Yok.
Eğer bir dize varsa, bir dosya, bellek, ya da bir e-posta iletisi içinde, içinde ne olduğunu bilmek ya da yorumlamak veya kullanıcılara doğru görüntüleyemiyor.
Nasıl bir metin dosyasının ilk satırı ...
Nasıl kabuk Unix komut satırında ya da...
Nasıl kilitlemeden bir metin dosyası o...
Nasıl bir ikili dosya (metin olmayan) ...
Nasıl bir metin dosyası Java kullanara...