2010-06-14 3 views
0

디렉토리에서 파일을 읽고 파일의 내용을 읽고 내용을 처리하는 서비스를 작성하고 있습니다.Windows 서비스 및 기본 코드 페이지/문화권 설정?

서비스에서 읽을 때 스웨덴어 문자가 파일에서 "가비지 문자"로 변환 될 때 파일에서 읽는 것과 관련된 문제가 있습니다.

누구든지 서비스 제어 관리자가 사용하는 기본 코드 페이지/문화권 설정을 알고 있거나 Windows 서비스 프로그래밍의 컨텍스트에서 스웨덴 문자를 처리하는 데 "우수 사례"에 관한 기사를 알고 있습니까?

도움을 주시면 감사하겠습니다.

+0

파일을 어떻게 읽으십니까? 나는 이것이 당신의 프로그램이 서비스로서 실행된다는 사실에 의해서가 아니라, 문자들이 왜곡되어있는 곳일 것이라고 생각한다. 코드를 보여줄 수 있습니까? – dtb

+0

정확합니다. 나는 StreamReader 생성자에서 Encoding 옵션을 고려하지 않았고 이것이 내 문제였습니다. 코드를 수정했는데 이제는 작동합니다. 고맙습니다! – Freddy

답변

0

아마도 파일을 읽는 방법과 파일이 인코딩되는 방법과 관련이있을 것입니다. 예를 들어, 파일이 UTF-8로 인코딩되고 ASCII로 읽으면 특수 문자가 가비지가됩니다. 예를 들어

:

using (var fileStream = new StreamReader(@"path to file", Encoding.UTF8)) 
{ 
    Console.Write(fileStream.ReadToEnd()); 
} 

당신은 파일을 만드는 데 사용되는 인코딩과 일치하는 Encoding.UTF8을 변경할 수 있습니다.

+0

포인터 주셔서 감사합니다. 사용할 인코딩이 무엇인지 알아 내고 작동하도록 만들었습니다. StreamReader construtcor에서 Encoding.GetEncoding (1252)을 사용 했으므로 하루가 걸렸습니다. 고맙습니다! – Freddy