Jas*_*n S 26 java decoding query-string
我需要解码包含查询字符串的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();
}
Run Code Online (Sandbox Code Playgroud)
我已经尝试过使用java.net.URI,但它似乎解码了查询字符串所以在上面的例子中我留下了"alias = pos&FirstName = Foo + A&B = C&LastName = Bar"所以有一个歧义"是& "是查询分隔符,或者是查询组件中的字符.
编辑:我刚刚尝试了URI.getRawQuery()并且它没有进行编码,所以我可以用a分割查询字符串&
,但是我该怎么办?Javascript有decodeURIComponent,我似乎无法在Java中找到相应的方法.
有什么建议?我宁愿不使用任何新库.
jan*_*anb 62
使用
URLDecoder.decode(proxyRequestParam.replace("+", "%2B"), "UTF-8")
.replace("%2B", "+")
Run Code Online (Sandbox Code Playgroud)
模拟decodeURIComponent
.Java URLDecoder
将加号解码为空格,这不是您想要的,因此您需要替换语句.
警告:将
.replace("%2B", "+")
在年底会破坏你的数据,如果原来的(预X WWW的形式,进行了urlencoded)含有该字符串,如@xehpuk指出.
Mau*_*rry 17
请参阅类URLDecoder
归档时间: |
|
查看次数: |
65989 次 |
最近记录: |