Я пытаюсь создать небольшой инструмент, который поможет некоторым парням конвертировать данные между установкой 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» в файле.
Я что-то пропустил или упустил из виду что-то очень важное?