【发布时间】:2020-02-04 03:30:39
【问题描述】:
我有带有以下查询字符串的 URL
equipmentAccessoryRoute=LFVR+BASICACC
当我执行request.getParameter("equipmentAccessoryRoute") 时,它会在字符串变量中返回“LFVR BASICACC”,将加号替换为空格。
为了解决这个问题,我做了这样的事情
String accessoryRoute = java.net.URLEncoder.encode(request.getParameter("equipmentAccessoryRoute"),"UTF-8");
它工作得很好,但现在它不适用于以下查询字符串(以前可以工作)
`equipmentAccessoryRoute=C1000IP5EL@-A`
解码将其转换为“C1000IP5EL%40-A”并存储为字符串。
我真的很困惑。我尝试学习 URL 编码,但发现它很难理解。
【问题讨论】:
-
您是否要对 URL 进行编码?
-
这就是
URLEncoder.encode()应该做的,见URL encoding。 -
@Adeel 但它们不是查询字符串中的有效字符。请参阅我提供的链接。
-
@Adeel 您必须在客户端对您的 URL 进行编码,以保持
+和@登录 java 字符串。
标签: java query-string urlencode