2009-06-08 20 views
1

我剛纔用字符串生成器,創造了像 <?xml version="1.0" encoding="UTF-8"?> <xxxxxx> .. </xxxxxx> 開始標記很長的XML文檔,我想這個XML轉換爲ISO-8859-9編碼類型。 我該怎麼做? 或者任何人都建議我以另一種方式在C#中創建ISO-8859-9編碼類型xml。在C#將XML轉換UTF-8到ISO-8859-9

回答

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物業的字符集屬性, 我能達到你的解決方案? ©只會改變這兩條線:

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

它工作嗎?

+0

這可能會奏效。 – 2009-06-08 13:31:18