2010-12-22 3 views
1

다음 예제에서는 서버로부터 응답을 받고 있습니다. 그러나 ASCII 또는 UTF8 인코딩 유형을 설정해야합니까? 이건 정말에 응답을 보내는 어떤 웹 서버를 인코딩에 따라.NET에서 서버의 응답 스트림을 얻을 때 어떤 인코딩 유형을 사용해야합니까?

Dim objURI As Uri = New Uri(URL) 
Dim wReq As WebRequest = WebRequest.Create(objURI) 
Dim wResp As WebResponse = wReq.GetResponse() 
Dim respStream As Stream = wResp.GetResponseStream() 
Dim reader As StreamReader = New StreamReader(respStream, Encoding.ASCII) 
Dim respHTML As String = reader.ReadToEnd() 
wResp.Close() 

답변

1

docs 상태 :. 문자 인코딩이 인코딩 매개 변수에 의해 설정

, 버퍼 크기는 1024 바이트로 설정됩니다. StreamReader 개체는 스트림의 첫 번째 문자를 확인하여 인코딩을 검색하려고 시도합니다. 파일이 적절한 바이트 순서 마크 로 시작하는 경우 자동으로 UTF-8, 리틀 엔디안 유니 코드 및 빅 엔디안 유니 코드 텍스트 인식합니다.

런타임에서 인코딩을 인식하게하는 것이 안전해야하는 것처럼 보입니다.

1

서버에서 기대하는 바에 따라 다릅니다. HTML (사용자의 예상대로)의 경우 ASCII는 영어 페이지의 99 %를 처리하므로 모든 HTML 요소를 디코딩 할 수 있어야합니다. 그러나 가장 먼저해야 할 일은 문서의 head 요소에있는 "메타"태그를 읽는 것입니다. 이것들은 본문에있는 텍스트의 인코딩을 지정합니다. 일반적으로, 즉 ASCII되지 않는 경우는 UTF-8, ASCII에 이전 버전과 호환됩니다 (단, 2 바이트와 4 바이트 문자 코드에 대한 몇 가지 이상한 문자가 표시됩니다)입니다.

관련 문제