Question

J'ai xml où certaines des valeurs d'élément sont des caractères unicode. Est-il possible de représenter cela dans un encodage ANSI?

ex.

<?xml version="1.0" encoding="utf-8"?>
<xml>
<value>受</value>
</xml>

à

<?xml version="1.0" encoding="Windows-1252"?>
<xml>
<value>&#27544;</value>
</xml>

Je désérialise le code XML, puis j'essaie de le sérialiser à l'aide de XmlTextWriter en spécifiant le codage par défaut (le paramètre par défaut est Windows-1252). Tous les caractères Unicode sont des points d'interrogation. J'utilise VS 2008, C # 3.5

Était-ce utile?

La solution

D'accord, je l'ai testé avec le code suivant:

 string xml = "<?xml version=\"1.0\" encoding=\"utf-8\"?><xml><value>受</value></xml>";

 XmlWriterSettings settings = new XmlWriterSettings { Encoding = Encoding.Default };
 MemoryStream ms = new MemoryStream();
 using (XmlWriter writer = XmlTextWriter.Create(ms, settings))
      XElement.Parse(xml).WriteTo(writer);

 string value = Encoding.Default.GetString(ms.ToArray());

Et il a correctement échappé au caractère unicode ainsi:

<?xml version="1.0" encoding="Windows-1252"?><xml><value>&#x53D7;</value></xml>

Je dois faire quelque chose de mal ailleurs. Merci pour l'aide.

Autres conseils

Si je comprends la question, alors oui. Vous avez juste besoin d’un ; après le 27544 :

<?xml version="1.0" encoding="Windows-1252"?>
<xml>
<value>&#27544;</value>
</xml>

Ou vous vous demandez comment générer ce XML par programmation? Si oui, dans quelle langue / quel environnement travaillez-vous?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top