0

我有 2 个 jsp 页面,其中在 share.jsp 的文本框中输入的值是编码的,解码是在 forwarded.jsp 页面中完成的。如果在 txt 框中输入的文本是“xyz +”,则解码不正确,解码结果只有“xyz”,即“+”不被解码。

两个页面中的页面编码相同:

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

片段:-

分享.jsp

document.getElementById('hiddenFolderList').value = (encodeURI(document.getElementById('folderId').value,"UTF-8"));

转发的.jsp

String folders=java.net.URLDecoder.decode(request.getParameter("hiddenFolderList"),"UTF-8");

我还检查了URL 编码和解码工具,还有“+”没有被解码如何转义/防止这种情况?

4

1 回答 1

0

encodeURI javascript 函数“对特殊字符进行编码,除了:, / ? : @ & = + $ # (使用 encodeURIComponent() 对这些字符进行编码)

您提供的示例页面似乎工作正常...空格被编码为+,因此+将被解码为空格。如果你编码一个 + 它将变成一个 %2B。

于 2013-07-10T10:59:50.197 回答