이 글은 기계 번역의 미러 문서이며, 원본 기사로 바로 이동하려면 여기를 클릭해 주세요.

보기: 20162|회답: 2

[해결됨] 파일을 읽을 때 왜곡된 문자에 대한 StreamReader 솔루션

[링크 복사]
게시됨 2018. 4. 13. 오후 4:11:20 | | |
오늘 Open File 대화상자를 만들 때, 열린 파일을 읽고 양식의 RichTextBox에 표시해야 했습니다. 하지만 파일을 표시할 때 중국어 문자열이 뒤섞여 있는 것이 발견되었습니다. 코드의 핵심 부분은 다음과 같습니다:
처음에는 문자 인코딩에도 문제가 있다고 생각해서 StreamReader를 초기화할 때 문자 인코딩 매개변수를 여러 번 추가했습니다. Encoding.Unicode, Encoding.UTF32, Encoding.UTF7, Encoding.UTF8, Encoding.ASCII 등 다양한 인코딩 방식을 시도해봤지만, 결과는 좋지 않았습니다.


원래 윈도우 2000 이후 운영체제는 파일 처리에 유니코드를 사용했기 때문에, . .Net의 기본 파일 인코딩도 유니코드입니다. 별도 명시가 없는 한, StreamReader의 기본 인코딩은 현재 시스템의 ANSI 코드 페이지가 아닌 유니코드입니다. 하지만 대부분의 문서는 여전히 ANSI 인코딩으로 저장되어 있으며, 중국어 텍스트는 gb2312를 사용해 중국어 문자가 뒤섞여 읽을 때 인코딩 형식을 지정해야 합니다.


우회 방법은 System.Text.Encoding.Default가 StreamReader에 현재 운영체제의 인코딩을 알려줍니다.






이전의:.net/c# Xml, JSON, Hessian, 프로토콜 버퍼스 직렬화 비교
다음:.net/c# Costura.fody를 사용해 DLL을 EXE에 패키징하세요
 집주인| 게시됨 2018. 4. 13. 오후 5:11:39 |
이 글은 QWERTYU가 2018-4-13 17:18에 마지막으로 편집했습니다.

그래도 작동하지 않는다면, 서버가 데이터를 압축했을 가능성이 있습니다. 예를 들어 gzip을 예로 들면, 먼저 데이터를 압축 해제해야 합니다.

게시됨 2018. 4. 19. 오후 1:31:02 |
만약 웹 콘텐츠가 gzip으로 압축되고 내용이 흐트러져 있다면, 두 가지 해결책이 있습니다

첫 번째 해결책:

//
        요약:
        어떤 종류의 감압을 사용하는지 설정하거나 설정하세요.
        //
        결과 반환:
        사용되는 압축 해제 유형을 나타내는 T:System.Net.DecompressionMethods 객체입니다.
        //
        이상 현상:
        T:System.InvalidOperationException:
        현재 객체의 상태에서는 이 속성을 설정할 수 없습니다.
        public DecompressionMethods AutomaticDecompression { get; 세트; }
다음 코드 줄이 수행됩니다변화는 매우 작아요!!




두 번째 해결책:



면책 조항:
Code Farmer Network에서 발행하는 모든 소프트웨어, 프로그래밍 자료 또는 기사는 학습 및 연구 목적으로만 사용됩니다; 위 내용은 상업적 또는 불법적인 목적으로 사용되지 않으며, 그렇지 않으면 모든 책임이 사용자에게 부담됩니다. 이 사이트의 정보는 인터넷에서 가져온 것이며, 저작권 분쟁은 이 사이트와는 관련이 없습니다. 위 내용은 다운로드 후 24시간 이내에 컴퓨터에서 완전히 삭제해야 합니다. 프로그램이 마음에 드신다면, 진짜 소프트웨어를 지원하고, 등록을 구매하며, 더 나은 진짜 서비스를 받아주세요. 침해가 있을 경우 이메일로 연락해 주시기 바랍니다.

Mail To:help@itsvse.com