Le code suivant:
var text = (new WebClient()).DownloadString("http://export.arxiv.org/api/query?search_query=au:Freidel_L*&start=0&max_results=20"));
donne une variable text
qui contient, entre autres, la chaîne
"$ κ $ -espace de Minkowski, champ scalaire et problème de l'invariance de Lorentz"
Cependant, lorsque je visite cette URL dans Firefox, j'obtiens
$ κ $ -Espace de Minkowski, champ scalaire et problème de l'invariance de Lorentz
ce qui est en fait correct. J'ai aussi essayé
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);
mais cela a posé le même problème.
Je ne sais pas où est la faute ici. Le flux ment-il sur le fait qu'il est encodé en UTF8 et le navigateur est suffisamment intelligent pour comprendre cela, mais pas WebClient
? Le flux est-il correctement encodé en UTF8, mais WebClient
échoue-t-il d'une autre manière? Que puis-je faire pour atténuer cela?
UTF8Encoding.Default
est en faitEncoding.Default
, qui est un codage ANSI basé sur les paramètres de langue du système d'exploitation.