c# - Chargement de xml avec encodage UTF 16 en utilisant XDocument




2 Answers

Il semble que le fichier que vous essayez de lire ne soit pas encodé en Unicode. Vous pouvez répliquer le comportement en essayant d'ouvrir un fichier codé en ANSI avec le codage dans le fichier XML spécifié en tant que utf-16 .

Si vous ne pouvez pas vous assurer que le fichier est codé correctement, vous pouvez lire le fichier dans un flux (en laissant StreamReader détecter l'encodage), puis créer le XDocument :

using (StreamReader sr = new StreamReader(path, true))
{
    XDocument xdoc = XDocument.Load(sr);
}

J'essaye de lire le document XML en utilisant la méthode XDocument. mais je reçois une erreur quand xml a

<?xml version="1.0" encoding="utf-16"?>

Quand j'ai enlevé l'encodage manuellement. Cela fonctionne parfaitement.

Je reçois une erreur " Il n'y a pas de marque de commande d'octet Unicode. Impossible de passer à Unicode. "

J'ai essayé de chercher et j'ai atterri ici ->

Pourquoi C # XmlDocument.LoadXml (chaîne) échoue-t-il lorsqu'un en-tête XML est inclus?

Mais je n'ai pas pu résoudre mon problème.

Mon code:

XDocument xdoc = XDocument.Load(path);

Aucune suggestion ??

Je vous remercie.




Ce code:

System.IO.File.ReadAllLines(path)

retourne un tableau de chaînes. Le code correct est:

System.IO.File.ReadAllText(path)



Related

c# xml winforms visual-studio-2008 unicode