【发布时间】:2011-02-21 21:24:51
【问题描述】:
我有一个接受用户 HTML 输入的网页。使用System.Xml命名空间将输入转换为xml文档,如下所示:
var doc = new XmlDocument();
doc.AppendChild(doc.CreateElement("root"));
doc.DocumentElement.SetAttribute("BodyHTML", theTextBox.Text);
然后对数据使用 Xsl 转换 (System.Xml.Xsl.XslCompiledTransform)。
用户倾向于使用项目符号、引号等在 Microsoft Word 中编写文本。粘贴到我的页面时,他们的文本包含无效字符,例如 0x0C、0x03 等。使用xsl转换时,出现此错误“十六进制值0x0C,是无效字符。”
到目前为止,我的解决方法是使用循环和String.Replace 消除我发现令人反感的字符:
所有从 0 到 31 的字符,除了 9、10 和 13 都替换为 String.Empty。
我正在寻找一种更好的方法来做到这一点。内置的 .Net 方法?或者可能只是非法 Unicode 字符的完整列表。
【问题讨论】:
标签: c# xml unicode control-characters