我的文件名是abc#123.pdf,它通过将其连接到网址传递给服务器端。
在服务器端,我使用此行来获取文件名。但只有#" abc",#过滤后的字符串。我怎么能避免这个?
fileName = request.getParameter(DOCUMENT_NAME);
答案 0 :(得分:4)
这是因为URL中的#之后的任何内容都被视为URL的引用部分。您需要在将查询参数发送到服务器端时对其进行编码。如果您使用的是javascript,则可以执行以下操作。
var myUrl = "http://example.com?documentName=" + encodeURIComponent("abc#123.pdf");
在获取带有以下代码的参数
之后的java端encodeFileName = request.getParameter(DOCUMENT_NAME);
您可以使用URLDecoder解码该值。
String fileName = java.net.URLDecoder.decode(encodeFileName, "UTF-8");
确保在javascript中使用encodeURIComponent,如果使用encodeURI则不会编码#。