0

我有一个需要阅读和修改的文本文件。这个文件来自另一个程序,所以我不能修改它的格式。我需要将其用作模板并针对特定情况进行大量替换。我正在阅读的其中一行以 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);
          }
        }
      }
    }
4

0 回答 0