java - 如何替换 URL 字符串中的特定 '&' 进行解析

标签 java parsing url ampersand

URL 字符串可以非常动态。 它可以有任意数量的参数和参数组合。 例如:

  myHost?parm1=Data1&parm2=Data2&parm3=Data3

大多数解析例程在这种情况下都可以很好地实现,但是如果数据本身包含“&”怎么办? 例如:

  myHost?parm1=Data1&1b&parm2=Data2&2b&parm3=Data3&3b

使用 StringTokenizer 或 URLEncoder 是一个全有或全无的过程。 由于参数名称可能会有所不同,因此它们不能用作搜索的一部分。 名称值对需要分解,包含“&”的数据需要保留如下:

parm1=Data1&1b
parm2=Data2&2b
parm3=Data3&3b

有什么关于实现这一点的 Java 建议吗?

最佳答案

查询字符串值中的

& 应采用百分比编码,如 %26。在您的示例中,它们应该如下所示:

parm1=Data1%261b
parm2=Data2%262b
parm3=Data3%263b

因此,只需通过 & 即可轻松分割正确编码的 URL。

创建 URL 时,客户端程序必须对每个参数值进行 URL 编码。然后通过 = 连接键和(编码)值,并通过 & 连接键值对列表来格式化 URL。如果客户端程序不对参数值进行 URL 编码,则服务器程序将无法区分嵌入的 & 和值分隔符 &

关于java - 如何替换 URL 字符串中的特定 '&' 进行解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34321846/

相关文章:

java - 找不到我的逻辑错误

java - 当您打开与 MySQL 的 JDBC 连接时,为什么 SSL 为 false?

c - 在 C 中解析文件以读取字符

excel - 从 URL HTTPS 下载 xls 文件

asp.net-mvc - 如何通过 URL 传递日期,以便我的 Action 在 MVC 中读取?

Java 覆盖 hashCode() 方法有任何性能问题?

java - 为什么我的应用程序VSCode不能在CLI中正确运行?它是一个 Spring 启动应用程序

Pythoncherpy,解析query_string

regex - 如何访问由递归Perl正则表达式捕获的组?

java - 从 Tomcat 获取资源时出现 FileNotFoundException