我正在使用以下代码阅读文件 该文件采用ANSI编码
string strReadTheWholeFile =
File.ReadAllText(txtFilePath.Text.ToString(),Encoding.GetEncoding(1250));
读取并读入字符串后,我使用下面的代码替换文件中的字符串
strReadTheWholeFile = strReadTheWholeFile.Replace(
"PortableSpecFileVersion=5.0;", ":ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ:");
更换后,我使用以下代码保存文件
File.WriteAllText(@"C:\MK\Converted\" + Path.GetFileName(txtFilePath.Text.ToString()),
strReadTheWholeFile, Encoding.GetEncoding(1250));
一旦保存,我打开文件以查看是否已提交更改但我发现的是字符串已被替换,但已被替换错误
原始字符串:
PortableSpecFileVersion = 5.0;转化名称= GSKPrePayValidation;
替换字符串:
:yyyyyyyyyyyyyyyyyyyyyyyyyyyy:转化名称= GSKPrePayValidation;
正如你所看到的那样,我想用“ÿ”替换它,而是用“y”代替它 可以任何人建议我做错了吗
答案 0 :(得分:1)
ÿ does not exist in the codepage you're reading and writing,因此被替换。但它似乎确实存在于1252中。
答案 1 :(得分:1)
根据MSDN上的参考页面,该集合中不存在ÿ
字符。
您可以使用您知道可以处理它的编码,例如UTF8:(已测试,有效)
File.WriteAllText(@"C:\MK\Converted\" + Path.GetFileName(txtFilePath.Text.ToString()),
strReadTheWholeFile, Encoding.UTF8);