0

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

一个部分通过临床测试的下拉列表工作,然后通过测试名称上的查询字符串获取。然而 ASP.net 的 HTMLEncoding 过于激进(尽管它是 UTF-8,但它编码的字符范围很广)。这会导致 HTML 编码的字符被 URL 编码,并且整个事情都会引发“潜在危险请求”错误。

我无法对测试名称进行 HTMLEncode,有权更改此名称的人非常有限,但这不是我想要开始的路径。

这让我不得不取消编码字符串然后重新编码,但 JavaScript 没有原生 HTMLDecode 函数。与其获取一长串字符并在字符串上运行替换,我想知道是否有一种简单的方法可以从 HTML 编码的字符直接转换为百分比编码的字符,即,而不是像 &xxx; 那样对某些内容进行解码和重新编码。= %(xxx/2)

4

1 回答 1

0

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

result = subject.replace(/&#(\d*);/img, function(match, matchinggroup) {
    return String.fromCharCode(matchinggroup); 
});
于 2011-06-09T10:32:07.803 回答