Следующий код:
var text = (new WebClient()).DownloadString("http://export.arxiv.org/api/query?search_query=au:Freidel_L*&start=0&max_results=20"));
приводит к переменной, text
которая содержит, среди прочего, строку
"$ κ $ -пространство Минковского, скалярное поле и проблема лоренц-инвариантности"
Однако когда я посещаю этот 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
не работает ли какой-то другой способ? Что я могу сделать, чтобы это смягчить?
UTF8Encoding.Default
ФактическиEncoding.Default
, это кодировка ANSI, основанная на языковых настройках ОС.