我正在尝试制作一个小工具来帮助一些人在 SAP 安装和 Axapta 安装之间转换数据。
我得到一个西欧(Windows)编码(1252)的文本文件。他们添加了一些特殊字符来替换一些波兰语字符。现在我的工作是用正确的波兰语字符替换那些特殊字符。
FileStream objFile = new FileStream(FilePath, FileMode.Open, FileAccess.Read,FileShare.Read);
StreamReader objTemp = new StreamReader(objFile, Encoding.GetEncoding(1252));
FileStream objFile2 = new FileStream(FilePath + "_new", FileMode.OpenOrCreate,FileAccess.Write);
StreamWriter objTemp2 = new StreamWriter(objFile2, Encoding.GetEncoding(1252));
while ((strLineText = objTemp.ReadLine()) != null)
{
for (int i = 0; i < strOuterArray.Length; i++)
{
string[] strInnerArray = strOuterArray[i].Split(new char[]{';'});
strLineText = strLineText.Replace(strInnerArray[0], strInnerArray[1]);
}
objTemp2.WriteLine(strLineText);
}
objTemp.Close();
objTemp.Dispose();
objFile.Close();
objFile.Dispose();
objTemp2.Flush();
objTemp2.Close();
如果我调试应用程序并在“objTemp2.WriteLine(strLineText);”上设置断点 线。然后我可以确定 strLineText 变量中的值是完美的。特殊字符被正确的波兰字符替换。
如果我之后打开写入的文件,则找不到正确的波兰语字符。我正在使用“ś”和“Ś”,两者都在文件中保存为“s”和“S”。
我错过了什么,还是忽略了一些非常重要的事情?