【发布时间】:2010-10-01 10:36:19
【问题描述】:
我想发送一个 URI 作为查询/矩阵参数的值。在将其附加到现有 URI 之前,我需要根据 RFC 2396 对其进行编码。例如,给定输入:
http://google.com/resource?key=value1 & value2
我期望输出:
http%3a%2f%2fgoogle.com%2fresource%3fkey%3dvalue1%2520%26%2520value2
java.net.URLEncoder 和 java.net.URI 都不会生成正确的输出。 URLEncoder 用于 HTML 表单编码,它与 RFC 2396 不同。URI 没有一次编码单个值的机制,因此它无法知道 value1 和 value2 是同一个键的一部分。
【问题讨论】:
-
我不确定我是否理解您期望的结果。我会使用 URLEncoder。
-
根据 Javadoc for URL:“也可以使用 URLEncoder 和 URLDecoder 类,但仅用于 HTML 表单编码,与 RFC2396 中定义的编码方案不同。”
-
@Peter:同意,但后者已经死了。至少有一个投票赞成的答案,因此即使答案在技术上是错误的,它也不会出现在未回答的问题列表中。如果您想提供帮助,请投票为零。
-
我想知道例如你在你的问题中给出的结果。
-
抱歉,我删除了关于这是 stackoverflow.com/questions/304806/… 重复的评论
标签: java url rest urlencode rfc2396