2011-07-11 17 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」が含まれていますが。

(これは冒涜ファイルですので、私はあなたがフランス語を話す場合、私は、1のために。謝罪どのような手段は考えている)

答えて

16

証拠は明らかにファイルがUTF-8形式でないことを示唆しています。試してみると、ファイルがWindows-1252にあることがわかります(システムのデフォルトのコードページを前提としています)。System.Text.Encoding.Defaultを試してください。その場合は、メモ帳でファイルを開き、「名前を付けて保存」をUTF-8として保存し、Encoding.UTF8を通常使用することをお勧めします。

実際にファイルがどのエンコーディングになっているかを確認する別の方法は、ブラウザでファイルを開くことです。アクセントが正しく表示されていれば、ブラウザは正しい文字セットを検出しました。したがって、「表示/文字セット」メニューを見て、どれが選択されているかを調べます。アクセントが正しく表示されない場合は、そのメニューが表示されるまで文字セットを変更してください。

+0

あなたが正しいと思われます。ブラウザのヒントをありがとう! – PolandSpring

関連する問題