直接从HTML编码转换为URL编码

时间:2011-06-08 10:13:23

标签: javascript urlencode html-encode percent-encoding

我正在将一组ASP经典页面转移到我们新的基于MVC的Intranet中。虽然我没有进行任何重大的功能更改,但我正在进行一些UI改进和一些更好的实践。然而,这会引发特殊字符的问题。

一个部分通过临床测试的下拉列表工作,然后通过测试名称上的查询字符串GETS。然而,ASP.net的HTMLEncoding过于激进(尽管它是UTF-8,它编码各种各样的字符)。这导致HTML编码的字符被URL编码,并且整个事件抛出了“潜在危险的请求”错误。

我无法对测试名称进行HTMLEncode编码,有权访问的用户进行更改非常有限,但这不是我想开始下降的路径。

这使我无法解码字符串然后重新编码,但JavaScript没有本机HTMLDecode函数。我想知道是否有一种简单的方法从HTML编码字符直接转换为百分比编码字符,而不是解码和重新编码某些字符串,而不是获取一长串字符并在字符串上运行替换。 XXX; =%(xxx / 2)

1 个答案:

答案 0 :(得分:0)

我设法得到一个函数,它接受一个HTMLencoded字符(使用字符代码而不是实体名称)并创建一个JavaScript字符,从这里转到URLencoded或用它做其他事情是微不足道的

result = subject.replace(/&#(\d*);/img, function(match, matchinggroup) {
    return String.fromCharCode(matchinggroup); 
});