2009-12-10 11 views
0

J'ai une chaîne qui contient un caractère spécial comme (signe de la marque etc). Cette chaîne est définie en tant que valeur de noeud XML. Mais le caractère spécial n'est pas rendu correctement en XML, montre ??. C'est comme ça que je l'utilise.C# Caractères spéciaux non affichés proprement en XML

String str=xxxx; //special character string 

XmlNode node = new XmlNode(); 
node.InnerText = xxxx; 

J'ai essayé HttpUtility.htmlEncode(xxxx) mais il le convertit en "& amp; # 8482;" donc la sortie de xml est "& # 8482"; au lieu de ™ J'ai aussi essayé XmlConvert.ToString() et XmlConvert.EncodeName mais ça donne ??

+0

où est-ce que ça montre '??' ? dans le navigateur? –

+0

ça montre ?? à l'endroit où le caractère spécial est présent dans IE6, FF3 OcwWeb/Aéronautique-et-Astronautique/16-61Aerospace-DynamicsSpring2003/Nouveau ® SectionName.xml harshildesai

Répondre

3

Je soupçonne fortement que le problème est de savoir comment vous visualisez le XML. Avez-vous fait en sorte que tout ce que vous visualisez utilise le bon encodage?

Si vous enregistrez le fichier XML, puis le rechargez et récupérez le texte interne sous forme de chaîne, a-t-il la bonne valeur? Si oui, où est le problème?

Vous ne devriez pas effectuer d'encodage supplémentaire vous-même - laissez les API XML faire leur travail.

0

J'ai rencontré des problèmes avec certains caractères utilisant auparavant htmlEncode(). Voici un bon exemple de différentes façons d'écrire votre XML: Different Ways to Escape an XML String in C#. Découvrez # 3 (System.Security.SecurityElement.Escape()) et # 4 (System.Xml.XmlTextWriter), ce sont les méthodes que j'utilise généralement.

Questions connexes