2008-09-17 8 views
2

xmlの要素値の一部がユニコード文字である場合があります。これをANSIエンコーディングで表現することは可能ですか?非ユニコードXML表現

など。

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

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

私は、XMLをデシリアライズしてから(デフォルトではWindows-1252です)デフォルトエンコーディングを指定してXmlTextWriter使用して、それをシリアル化しようとします。すべてのユニコード文字は疑問符として終わります。私はVS 2008、C#3.5を使用しています

答えて

5

わかりました、私は次のコードでそれをテストした:

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()); 

そして、それは正しくので、Unicode文字をエスケープ:

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

は、私がどこか間違って何かをしなければなりません。助けてくれてありがとう。

4

私は質問を理解したら、はい。

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

それとも、プログラムでこのXMLを生成する方法を不思議に思っている:あなたは;27544後に必要ですか?もしそうなら、どの言語/環境で作業していますか?

+0

私の一部に誤字がありました。例を修正しました。 –