как читать специальные символы, такие как é, â и другие в C # - PullRequest
27 голосов
/ 11 ноября 2011

Я не могу прочитать эти специальные символы, которые я пробовал вот так

1-й способ #

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

, но все еще не понимаю эти специальныесимволы.

Ответы [ 3 ]

69 голосов
/ 11 ноября 2011

Не существует такого понятия, как «особый характер». Вероятнее всего, это расширенные символы ascii из набора latin1 (iso-8859-1). Вы можете прочитать их, явно указав кодировку в потоковом считывателе (в противном случае это будет UTF8)

using (StreamReader r = new StreamReader(fileName, Encoding.GetEncoding("iso-8859-1")))
    r.ReadToEnd();
5 голосов
/ 11 ноября 2011
StreamReader sr = new StreamReader(stream, Encoding.UTF8)
3 голосов
/ 11 ноября 2011

Вы должны сообщить StreamReader, что вы читаете Unicode следующим образом:

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

Если ваш файл имеет какую-то другую кодировку , укажите его в качестве второго параметра

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...