在javascript中使用encodeURI传递特殊字符

时间:2009-08-07 14:11:40

标签: javascript escaping encode

我有一个HTML输入字段链接到一个按钮,在javascript中有一个onclick函数,可以将文本字段值传递给另一个页面的文本字段。在通过JSP的URL请求将值从一个页面传递到另一个页面时,我发现使用encodeURI()对值进行编码得到:

  • £ - > £(2个标志!!)
  • ö - > ¶(2个标志!!)

当我使用Javscript escape()时,我得到了正确的编码,但不幸的是+符号会消失。是否有更好的解决方案来进行某种稳定的字符编码?

2 个答案:

答案 0 :(得分:0)

encodeURI()使用UTF-8编码进行编码,这就是为什么你会看到编码一个字符的两个符号(这是正常的)。

如果您想使用转义并仍保留+符号,则可以使用以下内容:

function mod_escape(value) {
  value = escape(value);
  return value.replace(/\+/g, '%2B');
}

答案 1 :(得分:0)

我认为你应该在每个key = value对上使用encodeURIComponent(),在每个key = value对的第二页使用decodeURIComponent。