2009-03-12 4 views
1

이제 섭씨 기호가 ° C 대신 C로 읽히는 문제가 있습니다.StreamReader를 사용하여 파일을 읽을 때 파일 인코딩

인코딩의 주범 인 것처럼 보입니다. 나는이 작업을 수행하려고 :

  using (StreamReader sr = new StreamReader(this._inFilePath,System.Text.Encoding.Unicode ,true)) 

대신

  using (StreamReader sr = new StreamReader(this._inFilePath)) 

의 그러나 지금은 쓰레기를 얻고있다 .... 원래 파일 인코딩을 위해 StreamReader 인코딩과 일치해야합니까? 나는 compact framework 2.0을 사용하고있다.

나는 온라인으로 this을 찾았지만 이것을 사용하면 바이트 배열로 모두 읽었고 각 줄의 끝을 감지하여 유니 코드로 변환 한 다음 프로그램 논리로 진행합니다. 누구든지이 수업을 사용 했습니까?

+0

원본 파일 인코딩이 무엇

공공에서는 StreamReader (문자열 경로, 부울 detectEncodingFromByteOrderMarks)이었다? –

+0

utf-8. 스트림 판독기에 매개 변수로 utf-8을 전달하면 데이터가 읽히지 만 섭씨는 C – sarsnake

+1

이되므로 파일을 유니 코드로 저장해야 유니 코드로 읽을 수 있습니까? 바보 같은 질문을 용서해주십시오 – sarsnake

답변

2

예, StreamReader를 만들 때 올바른 인코딩을 지정해야합니다. .NET에서 인코딩을 감지 할 수 있습니다. 이 동작을 요청하는 데 사용할 수있는 부울 매개 변수를 사용하는 StreamReader 생성자에 대한 오버로드가 있습니다.

+0

기본적으로 유니 코드로 파일을 읽으려면 먼저 유니 코드로 저장해야합니다. 맞습니까? – sarsnake

+0

어떻게하면됩니까 ??? – sarsnake

+1

유니 코드를 지원하는 인코딩을 사용해야합니다. 대개 이것은 UTF-8 또는 UTF-16 (.NET에서는 "유니 코드"라고 함)입니다. ASCII 또는 ANSI (Encoding.Default)를 사용하지 마십시오. 파일 저장에 대한 또 다른 질문을 게시하고 상황을 자세히 설명 할 수 있습니다. –

관련 문제