Problème lectures fichier xml avec code c# (problèmes lié aux caractères accent
lalie45
Messages postés3Date d'inscriptionlundi 27 novembre 2000StatutMembreDernière intervention 4 octobre 2005
-
22 sept. 2005 à 15:26
lalie45
Messages postés3Date d'inscriptionlundi 27 novembre 2000StatutMembreDerniè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...
Paxcal
Messages postés42Date d'inscriptionsamedi 24 août 2002StatutMembreDerniè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
lalie45
Messages postés3Date d'inscriptionlundi 27 novembre 2000StatutMembreDerniè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