ReadLine正在改变文本读取?

时间:2013-05-01 13:16:54

标签: c# character-encoding

我有一个我需要阅读和修改的文本文件。此文件来自另一个程序,因此我无法修改其格式。我需要将它用作模板,并针对特定情况进行一系列替换。我正在阅读的其中一行用0xFF字符分隔。但是当我调用ReadLine时,字符串返回以0x3F字符分隔的行。我尝试了不同的编码。 ASCII以0x3f和UTF-8的形式返回,返回为3字节0xEF 0xBF 0xBD。原始文本文件似乎是ANSI格式,0xFF字符显示为“ÿ”。如何让我的ReadLine(以及随后的WriteLine)保持这个字符的完好无损?

   var replacements = new Dictionary<string, string> { {"to_replace1", "replacement1"}, {"to_replace2", "replacement2"}, {"etc etc", "more replaces"} };

    using (var writer = new StreamWriter(projectfileSpecific, false, Encoding.ASCII))
    {
      foreach (var line in File.ReadLines(projectfileTemplate, Encoding.ASCII))
      {
        foreach (var replacement in replacements)
        {
          if (line.Contains(replacement.Key))
          {
            var replaceLine = line;
            writer.WriteLine(replaceLine.Replace(replacement.Key, replacement.Value));
          }
          else
          {
            writer.WriteLine(line);
          }
        }
      }
    }

0 个答案:

没有答案