我有一个JSP页面,其中我有一个JavaScript函数,在单击链接时将调用它。现在,当值到达JavaScript函数时,撇号被编码。
示例:
Name#039;s
在#之前有&,最初应该是:
Name's
我使用了unescape()
解码功能,但似乎没有任何效果。最后,我不得不删除字符并添加撇号。有谁知道解决这个问题?是不是JSP不支持&
的编码?当我在这个页面中写入相同的编码值时,它将符号更改为撇号,这是我在代码中想要的。
答案 0 :(得分:1)
内置Javascript函数,例如unescape()
,decodeURIComponent()
与您正在处理的字符串无关,因为您要解码的字符是HTML entites。
Javascript中没有HTML entites解码器,但由于您使用的是浏览器,如果该字符串被视为安全,您可以执行以下操作(例如,在JQuery中)
var str = $('<p />').html(str).text();
它基本上将字符串作为HTML插入<p>
元素,然后在其中提取文本。
编辑:我只是意识到你发布的JSP输出不是真正的HTML实体;要处理给定的示例,您应该使用以下内容,在每&
之前添加#1234;
并将其设为Ӓ
:
var str = $('<p />').html(str.replace(/\#(\d+)\;/g '&#$1;')).text();