2

一部の要素値がUnicode文字であるxmlがあります。これをANSIエンコーディングで表すことは可能ですか?

例えば

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

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

XMLを逆シリアル化してから、デフォルトのエンコーディング(デフォルトはWindows-1252)を指定してXmlTextWriterを使用してシリアル化を試みます。すべてのUnicode文字は疑問符になります。VS 2008、C#3.5を使用しています

4

2 に答える 2

5

さて、次のコードでテストしました:

 string xml = "<?xml version=\"1.0\" encoding=\"utf-8\"?><xml><value>受&lt;/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());

そして、次のように Unicode 文字を正しくエスケープしました。

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

どこかで何か悪いことをしているに違いない。助けてくれてありがとう。

于 2008-09-17T12:11:33.420 に答える
4

私が質問を理解すれば、そうです。あなたはただ;後に必要です27544

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

または、このXMLをプログラムで生成する方法を知りたいですか?もしそうなら、あなたはどの言語/環境で働いていますか?

于 2008-09-17T11:03:25.410 に答える