在我的网页中,当提交表单并在文本字段中输入空格时,它在后端 java 代码中被读取为 %20 而不是空格。我可以在后端将 %20 替换回“”,但我认为这不是正确的方法,它可能发生在应用程序的任何地方。
提交表单时有没有更好的方法在前端处理它?
在我的网页中,当提交表单并在文本字段中输入空格时,它在后端 java 代码中被读取为 %20 而不是空格。我可以在后端将 %20 替换回“”,但我认为这不是正确的方法,它可能发生在应用程序的任何地方。
提交表单时有没有更好的方法在前端处理它?
这没什么不好。这是在 URL 中转义字符的方式。你应该使用URLDecoder
,这是特别合适的,因为尽管它的名字,它确实application/x-www-form-urlencoded
解码:
String decoded = URLDecoder.decode(queryString, "UTF-8");
然后,您将能够构建一个键/值对映射,解析 URL 的查询部分,在 上拆分&
,并使用=
将键与值分开(也可能是null
)。
但是请注意,如果 URL 作为URI
对象传递,它有一个 nicegetQuery()
已经返回未转义的文本。
如果您使用 servlet API,则不必转义任何内容,因为有很好的方法,例如getParameterMap()
.
您可以通过URLDecoder传递它,这样您不仅可以对 %20 的问题进行排序,还可以对其他 URLEncoded 值进行排序http://docs.oracle.com/javase/7/docs/api/java/net/URLDecoder.html
try {
String result = URLDecoder.decode(urlString, "UTF-8");
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}