1

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

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

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

4

2 回答 2

0

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

如果您想使用转义并仍然保留+标志,您可以使用以下内容:

function mod_escape(value) {
  value = escape(value);
  return value.replace(/\+/g, '%2B');
}
于 2009-08-07T14:20:14.953 回答
0

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

于 2009-09-05T18:46:07.400 回答