2011-07-11 14 views
11

Yabancı karakterler içeren bir dosyayı okuyamayacağım bir sorun yaşıyorum. Dosyaya, UTF-8 formatında kodlanmış.StreamReader, genişletilmiş karakter kümesini doğru olarak okuyamıyor (UTF8)

using (FileStream fileStream = fileInfo.OpenRead()) 
{ 
    using (StreamReader reader = new StreamReader(fileStream, System.Text.Encoding.UTF8)) 
    { 
     string line; 

     while (!string.IsNullOrEmpty(line = reader.ReadLine())) 
     { 
      hashSet.Add(line); 
     } 
    } 
} 

dosya kelime "achôcre" içerir ancak "achcre" olarak ekliyor ayıklama sırasında incelerken: Burada

benim kod çekirdeğidir.

cevap

16

kanıtlar açıkça dosyası UTF-8 biçiminde değil olduğunu göstermektedir (biri için Fransızca. I konuşmak, bu özür dilerim yani küfür dosyasıdır, anlama geldiğini hiçbir fikrim yok). System.Text.Encoding.Default'u deneyin ve doğru metni alıp almadığınızı öğrenin - eğer yaparsanız, dosyanın Windows-1252'de olduğunu (sistem varsayılan kod sayfanızın olduğunu varsayarak) bilirsiniz. Bu durumda, dosyayı Not Defteri'nde açmanızı, sonra da “Farklı Kaydet” i tekrar UTF-8 olarak ayarlamanızı ve sonra normal olarak Encoding.UTF8'i kullanabilmenizi öneririm.

Dosya kodlamasını gerçekte kontrol etmenin başka bir yolu da tarayıcınızda açmaktır. Aksan doğru görüntüleniyorsa, tarayıcı doğru karakter kümesini algılamıştır - böylece hangisinin seçildiğini bulmak için “Görünüm/Karakter seti” menüsüne bakın. Aksan doğru görüntülenmiyorsa, karakter kümesini bu menüye kadar değiştirin.

+0

Doğru gibi gözüküyor. Tarayıcı ipucu için teşekkürler! – PolandSpring

İlgili konular