2011-08-09 3 views
1

인터넷에서 많은 XML 파일을 다운로드하고 구문 분석합니다. 그들은 모두 첫 번째 줄에 설명 된 다른 인코딩을 가지고 있습니다.C# : WebClient에 대한 사이트 인코딩을 미리 얻으십시오.

<?xml version="1.0" encoding="windows-1251"?> 
<?xml version="1.0" encoding="UTF-8"?> 

등등 ...

나는 올바른 인코딩의 텍스트를 받기 위해 올바른 WebClient.Encoding 매개 변수를 설정해야합니다. 하지만 파일을 미리 다운로드하고 첫 번째 줄을 읽지 않고서는 그렇게 할 수 없습니다.

할 수 있습니까?

답변

1

간단하게 지금을 사용하여 감사는 자신의 모든 것을 처리해야 자신의 :

HttpWebRequest myHttpWebRequest = (HttpWebRequest)WebRequest.Create(url); 
HttpWebResponse myHttpWebResponse = (HttpWebResponse)myHttpWebRequest.GetResponse(); 

XDocument.Load(myHttpWebResponse.GetResponseStream()); 

http://msdn.microsoft.com/en-us/library/system.xml.linq.xdocument.aspx

+0

각 파일에 대해 올바르게 설정되었다고 가정합니다. – Oded

+0

하지만 전체 파일을 다운로드하지 않겠습니까? – Alex

+1

@Alex 파일을 다운로드 한 다음 올바른 인코딩을 응답 스트림에 적용 할 수 있습니다. 하나의 파일 다운로드. – Skomski

1

당신은 아무것도 설정할 필요가 없습니다 - 당신이 필요하지 않습니다 인코딩을 전혀 처리하지 마십시오. 바이너리 데이터를 가져 와서 XML 파서를 처리하십시오. 또는 디스크에 파일을 저장하려는 경우 디스크에 직접 바이너리 데이터를 덤프하면됩니다. 인코딩에 대해 전혀 염려 할 필요가 없습니다.

관련 문제