2011-07-11 67 views
11

我遇到了無法讀取包含外來字符的文件的問題。據我所知,這個文件是以UTF-8格式編碼的。StreamReader無法正確讀取擴展字符集(UTF8)

這裏是我的核心代碼:調試它是將其作爲「achcre」期間檢查時,它

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); 
     } 
    } 
} 

該文件包含單詞「achôcre」但是。

(這是一種褻瀆文件,所以我很抱歉,如果你講法語。我一個,不知道這是什麼意思)

回答

16

的證據清楚地表明,該文件是在UTF-8格式。嘗試System.Text.Encoding.Default,看看你是否得到正確的文本 - 如果你這樣做,你知道該文件是在Windows-1252(假設這是你的系統默認代碼頁)。在這種情況下,我建議您在記事本中打開文件,然後將其另存爲UTF-8,然後正常使用Encoding.UTF8。

另一種檢查文件實際編碼的方法是在瀏覽器中打開它。如果重音顯示正確,那麼瀏覽器檢測到正確的字符集 - 請查看「視圖/字符集」菜單以確定選擇哪一個。如果重音沒有正確顯示,請通過該菜單更改字符集直到它們出現。

+0

看起來你是對的。感謝您的瀏覽器提示! – PolandSpring