XML et encodage

cs_mathmax Messages postés 403 Date d'inscription vendredi 28 octobre 2005 Statut Membre Dernière intervention 31 août 2008 - 8 mars 2006 à 04:12
Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 - 8 mars 2006 à 15:25
Bonjour.

Voici mon problème :

Je travaille actuellement sur un fichier XML. Au début j'ai chargé mon document à l'aide de la fonction load comme ceci :


XmlDocument oDoc =
new
XmlDocument();
oDoc.Load(File);

puis j'ai après quelques modifications sur les noeuds, j'ai enregistrer mon document XML comme ceci :



XmlTextWriter writer =
new
XmlTextWriter(File
,
null);

oDoc.Save(writer);

seulement, je me suis rendu compte que je devais remplacer certains caractères comme les espace fines, les nouveaux paragraphex,... Comme je n'arrivais pas à faire un remplaçement de ces caractères quand ceux-ci étaient encodés en utf8 (qui est visiblement l'encodage qu'ulilise les fonctions Load et Save précédentes), j'ai décidé de lire d'abord mon fichier avec la classe streamreader, puis charger un document XML à partir de la string générée puis faire mes modifications sur les noeuds xml, puis exporter ce document XML dans une string et enfin l'écrire dans un fichier à l'aide de Streamwriter. Celà me permet de rester tous le temps en ASCII. Ca marche, mes remplaçement se font correctement, mais je trouve que ce n'est pas très satisfaisant... J'aimerais donc savoir si il existe des méthode plus propres pour faire mes remplaçements de caractères. J'ai pas mal cherché du côté de ASCIIencoding et UTF8encoding en épérant pouvoir détécter mes caractères UTF8 spéciaux par le biais d'un encodage ASCII, mais je n'ai pas trouvé. Sinon peut-être y a t-il une solution plus élégante pour le remplaçament des caractères UTF8 (en les détéctant avec des codes spéciaux ou autres...) ? Pourriez-vous m'éclaircir sur ce point qui m'est encore bien obscure ?

merci d'avance pour votre aide.


Mathmax

3 réponses

Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
8 mars 2006 à 04:28
Salut, pour les caractères spéciaux il y'a les méthodes :

System.Web.HttpUtility.HtmlEncode( .. );
System.Web.HttpUtility.HtmlDecode( .. );
0
cs_mathmax Messages postés 403 Date d'inscription vendredi 28 octobre 2005 Statut Membre Dernière intervention 31 août 2008
8 mars 2006 à 14:05
Il ne s'agit pas d'un texte codé en html mais d'un texte encodé en UTF-8. Je sent qu'il y une solution du côté des classes ASCIIencoding et UTF8encoding, mais je n'arrive pas à les utiliser. Mon but serait de détécter mes caractères UTF8 spéciaux par le biais d'un encodage ASCII. A moins qu'il existe une méthode plus simple pour détécter des caractères UTF-8...


Mathmax
0
Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
8 mars 2006 à 15:25
Ah, désolé je vois pas.. les classes Encoding permettent de passer d'un codage à un autre, y'a un très bon exemple >ici<.

ASCII est un jeu de caractères qui comprends que 128 caractères c'est donc impossible de convertir certains caractères depuis UTF8 sauf les 128 premiers qui sont équivalent dans les deux encodages. Mais j'ai l'impression que ça ne repond pas à ta question :/
0
Rejoignez-nous