2009-06-08 4 views
1

私はちょうど <?xml version="1.0" encoding="UTF-8"?> <xxxxxx> .. </xxxxxx> などの開始タグと文字列ビルダによって作成された長いXMLドキュメントを持っていると私は、ISO-8859-9エンコーディングタイプにこのXMLを変換したいです。 どうすればいいですか? 誰かがC#でISO-8859-9エンコーディングタイプxmlを作成する別の方法を提案します。は、C#でISO-8859-9へのXML UTF-8に変換

答えて

3

最も堅牢な方法は、XML文書としてロードし、ISO-8859-9のエンコーディングを持つTextWriterで保存することです。そうすれば、XML特有のことについて何も心配する必要はありません。

どのように出力しますか?文字列、ファイル、バイト配列では?

5

テキストがストリームにエンコードされている場合にのみエンコードが意味をなさないので、指定したエンコードを使用してドキュメントをファイルに保存するとします。そうすれば、エンコーディング属性はファイルのエンコーディングと一致します。

試してみてください。

using System.IO; 
using System.Xml; 

XmlDocument doc = new XmlDocument(); 
doc.LoadXml(xml); 
Stream stream = File.Open(path, FileMode.Create, FileAccess.Write, FileShare.None); 
XmlWriterSettings settings = new XmlWriterSettings(); 
settings.Encoding = Encoding.GetEncoding("ISO-8859-9"); 
XmlWriter writer = XmlWriter.Create(stream, settings); 
doc.Save(writer); 
0

は、それは私にとって本当に参考になっているあなたの答えをありがとうございました。 それに加えて私は以下のサンプルコードに気づいた。

string xml ="our created xml string"; 

HttpResponse Response = context.Response; 
Response.Clear(); 
Response.ClearContent(); 
Response.ClearHeaders(); 
Response.ContentType = "application/xls"; 
Response.Charset = "UTF-8"; 
Response.ContentEncoding = Encoding.GetEncoding("UTF-8"); 
Response.AddHeader("content-disposition", "attachment; filename=text.xml") ; 
Response.Output.Write(xml); 

私はちょうど応答と応答の ContentEncodingプロパティのCharsetプロパティを変更した場合、 は私はあなたの解に到達することはできますか?

Response.Charset = "ISO-8859-9";           
Response.ContentEncoding = Encoding.GetEncoding("ISO-8859-9"); 

は、それが動作ん:私はこれらの2行を変更します ?

+0

これはおそらく動作します。 –

関連する問題