C# 如何使用.Net用未知编码替换文件中的文本?

C# 如何使用.Net用未知编码替换文件中的文本?,c#,.net,encoding,io,C#,.net,Encoding,Io,我有很多文件包含一些字符串。我想在所有这些文件中用另一个值替换这个字符串 这些文件可能有不同的编码和扩展名 所以,我对所有文件使用下一个方法 void ReplaceInFile(string file, string oldValue, string newValue) { string text = File.ReadAllText(file); text = text.Replace(oldValue, newValue); File.WriteAllText(file, text)

我有很多文件包含一些字符串。我想在所有这些文件中用另一个值替换这个字符串

这些文件可能有不同的编码和扩展名

所以,我对所有文件使用下一个方法

void ReplaceInFile(string file, string oldValue, string newValue)
{
 string text = File.ReadAllText(file);
 text = text.Replace(oldValue, newValue);
 File.WriteAllText(file, text);
}
但我不确定我是否会破坏其中一些,因为它们有一些不寻常的编码。我说得对吗

对于具有不同编码的文件,我还可以使用什么来执行此操作


如何检查没有损坏?

您必须知道文件的编码才能正确解释数据。

我假设这意味着您无法知道/检查每个特定文件的编码是什么?如果您不知道其编码,则更改文本是不安全的。如果读取的文件编码未知,则可能会出现异常,或者某些字符可能会更改为其他字符。如果编码错误,则可能找不到旧值。如果未找到旧值,则不保存。即使您确实找到了不能保证您具有正确编码的旧值。是否有任何方法可以以某种方式获得编码。。?如果没有,那么没有,我不知道文件的编码。有点像。