我創建一個的XDocument這樣的:爲什麼Xdocument會給我一個utf16聲明?
XDocument doc = new XDocument(
new XDeclaration("1.0", "utf-8", "yes"));
當我保存這樣的(doc.Save(@"c:\tijd\file2.xml");
)的文件,我得到這樣的:
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
這是確定。
,但我想返回內容爲XML,我發現下面的代碼:
var wr = new StringWriter();
doc.Save(wr);
string s = (wr.GetStringBuilder().ToString());
此代碼的工作,但隨後的字符串「S」始於此:
<?xml version="1.0" encoding="utf-16" standalone="yes"?>
所以它從utf8更改爲utf16,這不是我想要的,因爲現在我無法在Internet Explorer中讀取它。
有沒有辦法來防止這種行爲?
有一個大紅旗這裏,串作家確實包含UTF-16編碼字符串。即使您重寫Encoding屬性。這是如何從StringWriter進入IE的? – 2011-03-09 16:54:26
好問題。我使用File.WriteAllText將字符串's'保存到一個文件中,然後用IE打開它。沒有在我的問題中指定得太清楚...... – Michel 2011-03-09 18:41:29
對,File.WriteAllText()調用是*真正*確定編碼的那個。默認值是utf-8,除非您使用需要進行編碼的重載。 – 2011-03-09 18:47:35