0

Lors de la création d'un XDocument je reçois un XmlException avec le message suivant:question d'encodage sur Chrome et non IE

system does not support 'iso-8859-1' encoding line 1, position 31 

La première ligne du document Xml ressemble à ceci:

<?xml version="1.0" encoding="iso-8859-1" standalone="yes"?> 

Voici le code que j'utilise pour créer le document:

xDoc = XDocument.Load(webResponse.GetResponseStream()); 

La chose étrange est que l'exception se produit sur Chro moi et Firefox mais pas IE8.

Des idées?

+0

Quelle est votre question exactement? Après tout, le message d'erreur semble relativement clair. Avez-vous besoin d'utiliser iso-8859-1? –

+0

Comment puis-je contourner ce problème? Existe-t-il un paramètre dans Chrome que je dois vérifier? Pourquoi cela se passe-t-il dans Chrome et non dans IE8? Est-ce que je fais/ne fais pas quelque chose lorsque je charge le document qui provoque cela? –

Répondre

0

De nombreux navigateurs ne prennent pas en charge ce codage. Fondamentalement, vous pouvez installer une police pour n'importe quelle langue que vous essayez d'afficher (je suppose que c'est la raison pour laquelle vous utilisez cet encodage). Ensuite, vous pouvez intégrer cette police pour l'utiliser sur n'importe quelle machine locale.

  • code.google.com/p/chromium/issues/detail?id=31510
  • bugs.webkit.org/show_bug.cgi?id=22339
0

Je vois similaire comportement lors du téléchargement d'un document xml généré par un service Web .NET pour OData (servi localement par IIS 7). Il apparaît avec différents types de contenu basés sur le navigateur. L'en-tête de type de contenu ainsi que la première ligne du fichier xml changent. Mettre un point d'arrêt dans et inspecter l'objet « HttpWebResponse » ou en utilisant Fiddler montre:

content-type: "application/xml;charset=utf-8"   (IE) 
content-type: "application/xml;charset=iso-8859-1" (Chrome) 

comparant à la première ligne de la xml

<?xml version="1.0" encoding="utf-8" standalone="yes"?>  (IE) 
<?xml version="1.0" encoding="iso-8859-1" standalone="yes"?> (Chrome) 

Cela se traduit par la XDocument.Load par défaut (webResponse_stream) à échouer sur Chrome.

Questions connexes