2009-12-17 4 views
1

저는 SAP 설치와 Axapta 설치간에 데이터를 변환하는 데 도움이되는 작은 도구를 만들려고합니다.Streamwriter : 폴란드 문자를 건너 뜁니다?

텍스트 파일이 있습니다. 서유럽 어 (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

답장을 보내 주셔서 감사합니다. 아니요 - 링크 된 페이지에 문자가 표시되지 않습니다. 나는 그들이 잘못된 인코딩을 사용하고 있다고 생각하지만 그들은 듣지 않을 것이라고 말하고있다. 이제 나는 그들에게 줄 무언가가있다. 그리고 나서 그들은 그들 자신을 볼 수있다. 감사합니다. –