web-dev-qa-db-ja.com

C、#、é、âなどの特殊文字の読み方

このように試した特殊文字が読めない

第一の方法#

string xmlFile = File.ReadAllText(fileName);

2番目の方法#

FileStream fs = new FileStream(fileName, FileMode.Open, FileAccess.Read);
StreamReader r = new StreamReader(fs);
string s = r.ReadToEnd();

ただし、両方のステートメントはこれらの特殊文字を理解しません。どのように読むべきですか?

更新###

私もすべてのエンコーディングを試します

string xmlFile = File.ReadAllText(fileName, Encoding. );

しかし、それらの特殊文字はまだ理解していません。

27
kevin

「特別なキャラクター」というものはありません。それらの可能性が高いのは、latin1セット(iso-8859-1)からのA​​SCII文字の拡張です。ストリームリーダーにエンコードを明示的に指定することで、それらを読み取ることができます(そうでない場合はUTF8を想定します)

using (StreamReader r = new StreamReader(fileName, Encoding.GetEncoding("iso-8859-1")))
    r.ReadToEnd();
72
Ilia G
StreamReader sr = new StreamReader(stream, Encoding.UTF8)
5
Kakashi

あなたはそのようにUnicodeを読んでいることをStreamReaderに伝える必要があります

StreamReader sr = new StreamReader(stream, Encoding.Unicode);

ファイルが他の何らかのものである場合 エンコード、2番目のパラメーターとして指定

3