【发布时间】:2011-02-07 14:21:40
【问题描述】:
我需要解码一个包含查询字符串的 URI;预期的输入/输出行为类似于以下内容:
abstract class URIParser
{
/** example input:
* something?alias=pos&FirstName=Foo+A%26B%3DC&LastName=Bar */
URIParser(String input) { ... }
/** should return "something" for the example input */
public String getPath();
/** should return a map
* {alias: "pos", FirstName: "Foo+A&B=C", LastName: "Bar"} */
public Map<String,String> getQuery();
}
我尝试过使用java.net.URI,但它似乎可以解码查询字符串,所以在上面的示例中,我留下了“alias=pos&FirstName=Foo+A&B=C&LastName=Bar”,因此“是否”存在歧义&" 是查询分隔符或查询组件中的字符。
编辑:我刚刚尝试了URI.getRawQuery(),但它没有进行编码,所以我可以用& 拆分查询字符串,但是我该怎么办? Javascript有decodeURIComponent,Java中好像找不到对应的方法。
有什么建议吗?我不想使用任何新的库。
【问题讨论】:
-
既然你不想引入新的库,请问你是在什么环境下收到这些URI的?
标签: java decoding query-string