2012-10-09 56 views
2

我試圖將一些字符(\ t,\ r,\ n,「\ r \ n」)轉換爲與XML兼容的「值」。所以'\ t'應該是	,\ r \ n應該是
。我曾嘗試使用HttpUtility.HtmlEncode(),但沒有任何成功。字符編碼,char到xml值

對於那些有興趣:

我沒能得到完全我想要的格式,但以下似乎做相同的:

"\r\n".ToList().ForEach(c => Console.Write("&#x" + ((int)c).ToString("X") + ";"));

回答

2

AFAIK實體,如\t\r\n不需要是「xml-escaped」(實際上你不能默認轉義它們,因爲它可能只是源代碼格式,或者它可能是真正的新行,並且你不知道它是哪一個),所以我找到了best solution轉換這些字符「手「:

HttpUtility.HtmlEncode() 
    .Replace("\n\r", "<br/>") 
    .Replace("\n", "<br/>") // Or use &#012; if you want it "binary safe" 
    .Replace("\r", "<br/>") 
    .Replace("\t", "&#009;"); 
+0

感謝您的建議。事情是,這是我必須遵守的項目要求。除了手動操作之外,沒有辦法從'\ t'到' '嗎? – user1731444

+0

@ user1731444沒有我知道...也許把它放入'CDATA'會保留空格? – Vyktor

+0

由於沒有人回答,我想我找到了一種替代方法,我會將答案設置爲「接受」答案。謝謝你的時間:) – user1731444