奇怪的字符(amp;)添加到苔藓服务输出

时间:2012-05-04 08:23:28

标签: javascript asp.net-mvc-3 moss

我有苔藓服务,输出图像的网址。

让我们说输出网址有'&'性格,服务附加放大器;在&。旁边。

代表:Directory.aspx?& z = BWxNK

这里放大器;另外添加了。这是一个苔藓服务。所以我无法控制服务。

我能做的就是解码输出。由于我正在使用Ajax调用来调用moss服务,因此我被迫从javascript解码输出。我试过decodeURIComponent,decodeURI,unescape。没有解决问题。

任何帮助非常感谢。甚至服务器端功能也很有帮助。我正在使用Aspl.net MVC3

此致 库马尔。

2 个答案:

答案 0 :(得分:0)

&不是URI编码的,而是HTML编码的。

对于服务器端解决方案,您可以这样做:

Server.HtmlDecode("&") // yields "&"

对于JavaScript解决方案,您可以将 html 设置为"&"并读出文本,以模拟HTML解码。在jQuery中,它看起来像这样:

$("<span/>").html("&amp;").text(); // yields "&"

答案 1 :(得分:0)

&amp;&的SGML / XML / HTML。

如果服务正在输出XML文档,那么请确保使用XML解析器来解析它(而不是正则表达式或同样疯狂的东西)。

否则,您需要解码(推测)HTML。在JavaScript中,最简单的方法是:

var foo = document.createElement('div');
foo.innerHTML = myString;
var url = foo.firstChild.data;