WebClient.DownloadString приводит к искажению символов из-за проблем с кодировкой, но браузер в порядке

Следующий код:

var text = (new WebClient()).DownloadString("http://export.arxiv.org/api/query?search_query=au:Freidel_L*&start=0&max_results=20"));

приводит к переменному тексту , содержащему, помимо прочего, строку

"$ κ $ -Пространство Минковского , скалярное поле и проблема лоренц-инвариантности »

. Однако, когда я посещаю этот URL-адрес в Firefox, я получаю

$ κ $ -пространство Минковского, скалярное поле и проблему лоренц-инвариантности

, которая является на самом деле правильно. Я также пробовал

var data = (new WebClient()).DownloadData("http://export.arxiv.org/api/query?search_query=au:Freidel_L*&start=0&max_results=20");
var text = System.Text.UTF8Encoding.Default.GetString(data);

, но это дало ту же проблему.

Я не уверен, где здесь ошибка. Фид лжет о кодировке UTF8, и браузер достаточно умен, чтобы это понять, но не WebClient ? Правильно ли закодирован канал UTF8, но WebClient не работает по-другому? Что я могу сделать, чтобы смягчить это?

81
задан Domenic 21 August 2011 в 08:10
поделиться