Потоковый Программист:Польские символы пропущены?

StackOverflow https://stackoverflow.com/questions/1922650

Вопрос

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

Я что-то пропустил или упустил из виду что-то очень важное?

Это было полезно?

Решение

Я думаю, проблема в том, что соответствующие польские символы отсутствуют на кодовой странице Windows-1252.

Можете ли вы подтвердить, есть ли они на сайте эта сетка?

Мое предложение состояло бы в том, чтобы открыть выходной поток (stream writer) с кодировкой UTF-8 или что-то в этом роде, которая будет поддерживать все нужные вам символы.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top