C #: получение кодировки сайта для WebClient заранее - PullRequest
1 голос
/ 09 августа 2011

Я загружаю и анализирую множество файлов XML из Интернета. Все они имеют разные кодировки, которые описаны в первой строке.

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

и так далее ...

Мне нужно установить правильный параметр WebClient.Encoding для получения текста в правильной кодировке. Но я не могу сделать это без предварительной загрузки файла и чтения первой строки.

Можно ли это сделать?

Спасибо

Ответы [ 2 ]

1 голос
/ 09 августа 2011

Вам не нужно ничего устанавливать - вам вообще не нужно обрабатывать кодировку. Просто получите двоичные данные и получите XML-анализаторы для их обработки. Или, если вы собираетесь хранить файлы на диске, просто сбросьте двоичные данные прямо на диск. Вам вообще не нужно беспокоиться о кодировке.

1 голос
/ 09 августа 2011

Просто используйте это сейчас, и оно должно обрабатывать все самостоятельно:

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

...