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