Problème lectures fichier xml avec code c# (problèmes lié aux caractères accent

lalie45 Messages postés 3 Date d'inscription lundi 27 novembre 2000 Statut Membre Dernière intervention 4 octobre 2005 - 22 sept. 2005 à 15:26
lalie45 Messages postés 3 Date d'inscription lundi 27 novembre 2000 Statut Membre Dernière intervention 4 octobre 2005 - 4 oct. 2005 à 15:55
bonjour,

j'ai un fichier xml, que je lis via la méthode readXml(en c#), et je mets les données récupérées dans un dataset.
Cependant, quand le fichier xml contient des caractères accentués, ça plante. comment faire pour contourner ce problème? je peux pas virer les accents, c'est l'utilisateur qui va alimenter ce fichier...

HELP!!!

4 réponses

cs_emmanuel9 Messages postés 903 Date d'inscription mercredi 23 février 2005 Statut Membre Dernière intervention 16 juin 2010 2
23 sept. 2005 à 13:58
Normalement ca marche avec les accents mais si tu fais

<société>bnp</société> ca deconne.

et si tu fais

<societe>société</societe> ca doit marcher normalement.
0
cs_emmanuel9 Messages postés 903 Date d'inscription mercredi 23 février 2005 Statut Membre Dernière intervention 16 juin 2010 2
23 sept. 2005 à 13:59
pour recuperer la valeur fait : Convert.ToString(liste.Item(i).get_ChildNodes().Item(0).Value) ;
0
Paxcal Messages postés 42 Date d'inscription samedi 24 août 2002 Statut Membre Dernière intervention 3 octobre 2005
23 sept. 2005 à 14:01
Bonjour,

Tu as un problème d'encodage.

Pour faire simple, .NET travaille essentiellement en UTF-8, donc les methodes qui lisent des données partent du principe que ces données sont encodées en UTF-8.
Le problème est que beaucoup de fichiers sont encodés en ANSI. C'est là que le bas blaisse.
Pour résoudre se problème, il suffit d'indiquer l'encodage du fichier à .NET. voici un exemple :

try
{
string fileName = "XMLFileANSI.xml";
using(System.IO.StreamReader sr = new System.IO.StreamReader(fileName, System.Text.Encoding.Default ))
{
DataSet ds = new DataSet();
ds.ReadXml(sr);
Console.WriteLine(ds.GetXml());
}
}
catch(Exception e)
{
while(e!=null)
{
Console.WriteLine(e.Message);
e = e.InnerException;
}
}


Comment découvrir l'encodage du fichier ? Très simple. Il suffit d'ouvrir le fichier xml avec notepad
puis de selectionner "Enregistrer sous..." dans le menu fichier.
L'encodage apparait en bas de la fenêtre qui s'ouvre.



Si l'encodage est ANSI, utilise System.Text.Encoding.Default
Si l'encodage est UTF-8 utilise System.Text.Encoding.UTF8

Voilà, j'espère que ça va t'aider.



Pascal
0
lalie45 Messages postés 3 Date d'inscription lundi 27 novembre 2000 Statut Membre Dernière intervention 4 octobre 2005
4 oct. 2005 à 15:55
Merci beaucoup pour vos réponses!!! C'était bien un problème d'encodage, j'ai du modifier dans le fichier xml, et depuis plus de^plantage au moment d'afficher mes données depuis le Dataset
0
Rejoignez-nous