我正在尝试将一些字符(\t、\r、\n、“\r\n”)转换为与 XML 兼容的“值”。所以 '\t' 应该是	
并且 \r\n 应该是

. 我试过使用HttpUtility.HtmlEncode()
,但没有任何成功。
对于那些感兴趣的人:
我无法获得我想要的格式,但以下似乎也是如此:
"\r\n".ToList().ForEach(c => Console.Write("&#x" + ((int)c).ToString("X") + ";"));
AFAIK 实体如\t
, \r
or\n
不需要“xml-escaped”(事实上你不能默认转义它们,因为它可能只是源格式或者它可能是真正的新行并且你不知道它是哪一个),所以我发现的最佳解决方案是“手动”转换这些字符:
HttpUtility.HtmlEncode()
.Replace("\n\r", "<br/>")
.Replace("\n", "<br/>") // Or use  if you want it "binary safe"
.Replace("\r", "<br/>")
.Replace("\t", "	");