代码之家  ›  专栏  ›  技术社区  ›  AndreasN

将c源代码写入文件

  •  4
  • AndreasN  · 技术社区  · 15 年前

    我有个愚蠢的问题。我正在从磁盘读取一些.cs文件。 然后写回光盘。

    结果文件的编码不正确。c#源文件是什么编码?然后是第一个字节顺序,需要吗?

    更改文件的程序是一个简单的.net应用程序,代码很简单

    string text = System.IO.File.ReadAllText(fn);
    string newText = Regex.Replace(text, regexStr, replaceStr);
    System.IO.File.WriteAllText(fn, newText);
    

    c文件有注释,字符串似乎不是标准代码页的一部分。

    解决方案:

    这似乎是正确的

    string text = System.IO.File.ReadAllText(fn, Encoding.GetEncoding(1252));
    string newText = Regex.Replace(text, regexStr, replaceStr);
    System.IO.File.WriteAllText(fn, newText, Encoding.GetEncoding(1252));
    
    3 回复  |  直到 6 年前
        1
  •  2
  •   David Schmitt    15 年前

    System.IO.File.ReadAllText(fn) 尝试猜测输入文件的编码。这可能会出错。

    Encoding.UTF8Encoding 将文件写入磁盘时。

        2
  •  1
  •   Fraser    15 年前

    默认情况下,文件应使用在机器的区域设置中设置的相同代码页进行编码。默认情况下,这将是“Unicode(UTF-8带签名)-代码页65001”,您可以使用任何您希望的代码页,例如,您还可以使用“西欧(windows)-代码页1252”。

        3
  •  0
  •   Mauro    15 年前

    我曾经写过一些代码gen,并且总是使用ASCII编码(纯windows文本)。您使用什么语言对CS文件执行regex操作?