C # Streamreader: обработка специальных символов \ "\ 'и т. Д. - PullRequest
1 голос
/ 28 января 2012

Я читаю и пишу текстовый файл. До и после данных, представляющих интерес, файл содержит много строк, которые должны оставаться неизменными. Но Streamreader, похоже, преобразует специальные символы (" ' ) в другие символы, которые отображаются в виде шуток в текстовых полях C # и в блокноте. Как текст может быть передан через операции чтения / записи файла без изменений? Спасибо.

StreamWriter sw = new StreamWriter(sOutputFileName);
using (StreamReader sr = new StreamReader(sTempFileName))
{
   while (sr.Peek() >= 0)
   {
       rdBuffer = sr.ReadLine();
       txtProgressDisplay.Text += rdBuffer + "\r\n";

       // parse and process some lines here

       wrBuffer = rdBuffer;
       sw.WriteLine(wrBuffer);
       txtProgressDisplay.Text += wrBuffer + "\r\n";
   }
   sr.Close();
}
sw.Close();

Ответы [ 2 ]

3 голосов
/ 28 января 2012

Я почти уверен, что проблема связана с кодировкой символов, то есть UTF8, ASCII, UTF7 и т. Д. Попробуйте создать StreamReader, передавая правильную кодировку,

StreamReader sr = new StreamReader(sTempFileName, System.Text.Encoding.ASCII);

Вы можете использовать Encoding.ASCII, Encoding.UTF7 и т. Д.

2 голосов
/ 28 января 2012

Ваша проблема в кодировке.

1) Убедитесь, что программа просмотра текста использует ту же кодировку, что и приложение .NET (может быть, UTF-8?).

2) Проверьте, был ли сам файл создан с использованием той же кодировки, что и ваше приложение .NET ( смешиваете ли вы символы в разных кодировках? ).

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