Parser XML caractere speciaux dans les balises (accent, 1/4 de quadratin etc.)

vassily8 Messages postés 9 Date d'inscription mercredi 17 mai 2006 Statut Membre Dernière intervention 25 janvier 2008 - 27 sept. 2007 à 17:57
vassily8 Messages postés 9 Date d'inscription mercredi 17 mai 2006 Statut Membre Dernière intervention 25 janvier 2008 - 27 sept. 2007 à 18:02
bonjour a tous,

voila j'expose mon probleme puisqu'apres 1 bonnes heure de recherche sur la toile je n'ai pas vraiment trouvé de solution satisfaisante.

je parse un fichier XML qui contient entre autre des quart de quadratin (1/4 d'espace).

j'utilise les outils fournis par .NET :
String valeur = noeudParent.SelectSingleNode(balise).InnerText;

seulement voila je recupere pas bien mon caracetere special, j'ai un carré a la place.
le code ascii de ce caraceter est le 8201, j'arrive bien a le retrouvé en faisant une conversion de ma string en char et en parcourant le tableau de char.

je le retrouve aussi en utilisant :  valeur.contains(Convert.ToChar(8201))
par contre quand je fait un string.replace ca ne fonctionne pas (va comprendre) : valeur.replace(Convert.ToChar(8201), ' ')
(il ne me remplace pas le caractere special comme si il ne le trouvait pas alors qu'il le trouve avec string.contains() )

le format de mon XML est UTF-8, il est donc parser ainsi j'imagine.

lors du load XML je ne peux pas lui spécifié un autre codage, et je n'ai pas possibilité de modifier le fichier XML puisque la source est externe.

faire une boucle for sur un tableau de char me parait un peu lourd alors je me demandais si quelqu'un aurait une meilleur idée ou s'il avait deja rencontrer le probleme !!!

1 réponse

vassily8 Messages postés 9 Date d'inscription mercredi 17 mai 2006 Statut Membre Dernière intervention 25 janvier 2008
27 sept. 2007 à 18:02
bon, se fut court, mais au pif j'ai trouver une solution:

j'utilise la methode "normalize" ainsi:

string valeur = noeudParent.SelectSingleNode(balise).InnerText.Normalize(NormalizationForm.FormKC);

j'ai mit au pif la normalisation est ca a fonctionner.

mais si quelqu'un a des reponses j'aimerais bien comprendre.

d'avance merci !!
0
Rejoignez-nous