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

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

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

有帮助吗?

解决方案

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

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

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

其他提示

我认为您应该在每个键=值对上使用encodeURIComponent(),并在第二页上为每个键=值对使用decodeURIComponent。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top