2009-12-17 5 views
1

Я пытаюсь сделать небольшой инструмент, помогающий некоторым ребятам преобразовывать данные между установкой SAP и установкой Axapta.Streamwriter: польские символы пропускаются?

Я получаю текстовый файл i кодировка западноевропейского (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» в файле.

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

ответ

3

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

Вы можете подтвердить, были ли они на this grid?

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

+0

Спасибо за ответ rob. Нет - символы не указаны на странице, на которую вы ссылаетесь. Я говорю им, что я думаю, что они используют неправильную кодировку, но они не послушат. Теперь у меня есть кое-что, чтобы дать им, и тогда они могут видеть для себя. Спасибо! – 2009-12-17 17:29:33