ANSI编码问题

时间:2014-07-22 05:17:19

标签: c# encoding

我正在使用以下代码阅读文件 该文件采用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”代替它 可以任何人建议我做错了吗

2 个答案:

答案 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);