XML安全URLEncoding?

时间:2010-02-24 16:32:07

标签: .net asp.net xml

如何编码一个“xml-safe”的URL,其中查询字符串中的&符号(&)不会破坏XML?

For Instance:

www.somedomain.com/SomePage.aspx?SomeParam=SomeValue&SomeParam2=SomeVal

2 个答案:

答案 0 :(得分:4)

简短的回答是对URL进行编码,就像文档中的任何其他文本一样。如果您按如下方式替换字符,则不会出错:

& -> &
' -> '
" -> "
< -> &lt;
> -> &gt;

(任何使用符合条件的解析器阅读文档的人都会得到正确的,即未编码的文本)。

然而,我会回应安东尼的评论:为什么你认为你需要担心这个?任何合理的XML编写系统都应该采用您想要表示的文本并进行编码本身(就像解析器将撤消编码一样)。您的应用程序应该只需处理未编码的文本,它应该依赖XML编写库来处理字符编码和保持良好的格式。否则你会冒being called a bozo的风险。看起来XmlTextWriter是.net API,可以进行所有必要的更改。

答案 1 :(得分:0)

AntiXSS库有一个你可以使用的XmlEncode方法。