HTMLEncode(URLEncode(string))总是= URLEncode(HTMLEncode(string))?

时间:2013-01-24 18:20:37

标签: html url urlencode encode html-encode

我不确定是否需要对字符串进行URL编码和HTML编码(好吧,除非您构建的html文件包含使用从数据库中提取或由用户提供的数据构建的超链接),但是无论如何,我想知道无论操作顺序如何,结果是否相同。

2 个答案:

答案 0 :(得分:2)

如果你的意思是URLEncode就像JavaScript的encodeURI函数那么顺序无关紧要。

如果你的意思是URLEncode就像JavaScript的encodeURIComponent,那么顺序确实很重要。 编码&符号的小例子(&)

url + html:%26amp%3B

html + url:%26

答案 1 :(得分:1)

如果原始字符串包含HTMLEncode将编码的任何内容,则顺序无关紧要。拿字符串“&”例如:

HTMLEncode("&") -> &
URLEncode("&") -> %26
URLEncode(HTMLEncode("&")) -> %26amp%3B
HTMLEncode(URLEncode("&")) -> %26

我建议URLEncoding需要编码的URL的各个部分,然后在设置属性值之前HTMLEncoding整个URL。这应该产生一个适合HTML的值。