Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/266.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Streamwriter:跳过波兰字符?_C#_Encoding_Streamwriter_Windows 1252 - Fatal编程技术网

C# Streamwriter:跳过波兰字符?

C# Streamwriter:跳过波兰字符?,c#,encoding,streamwriter,windows-1252,C#,Encoding,Streamwriter,Windows 1252,我正在尝试制作一个小工具,帮助一些人在SAP安装和Axapta安装之间转换数据 我得到一个西欧(Windows)编码的文本文件(1252)。他们用一些特殊的字符来代替一些波兰字符。现在我的工作是用正确的波兰字符替换这些特殊字符 FileStream objFile = new FileStream(FilePath, FileMode.Open, FileAccess.Read,FileShare.Read); StreamReader objTemp = new StreamReader(ob

我正在尝试制作一个小工具,帮助一些人在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();
FileStream objFile=newfilestream(FilePath,FileMode.Open,FileAccess.Read,FileShare.Read);
StreamReader objTemp=新的StreamReader(objFile,Encoding.GetEncoding(1252));
FileStream objFile2=newfilestream(FilePath+“_new”,FileMode.OpenOrCreate,FileAccess.Write);
StreamWriter objTemp2=新的StreamWriter(objFile2,Encoding.GetEncoding(1252));
而((strLineText=objTemp.ReadLine())!=null)
{
for(int i=0;i

如果我调试应用程序并在“objTemp2.WriteLine(strLineText);”行上设置断点。然后我可以确定strlnetext变量中的值是完美的。特殊字符被正确的波兰字符替换

如果我以后打开写的文件,那么我就找不到正确的波兰语字符。我使用的是“ś”和“Ś”,两者都保存为文件中的“s”和“s”


我是否遗漏了什么或忽略了一些非常重要的内容?

我认为问题在于windows-1252代码页中不存在相关的波兰语字符

你能确认他们是否在飞机上吗


我的建议是使用UTF-8编码或类似编码打开输出流(流写入器),它将支持您需要的所有字符。

谢谢您的回复。否-链接到的页面上未列出字符。我一直在告诉他们,我认为他们使用了错误的编码,但他们不听。现在我可以给他们一些东西,然后他们可以自己看。非常感谢。