我的代码是这样的:
String queryString = "";
String url = "http://localhost:8080/xyz.html?param1=paramx¶m2=wt_jnknk|nkn|lk_nm¶m3=abc";
try {
List<NameValuePair> params = URLEncodedUtils.parse(new URI(url), "UTF-8");
for (NameValuePair param : params) {
if(!param.getName().toLowerCase().equals("param3")){
queryString = queryString + "&" + param.getName() + "=" + param.getValue();
}
}
} catch (URISyntaxException e) {
return "error";
}
return queryString;
此代码不返回queryString并返回错误,因为param2包含&#34; |&#34;。我怎么处理这个?我也可以在url中有其他特殊字符。
感谢。
答案 0 :(得分:0)
首先使用URLEncoder获取有效字符串。
queryString = URLEncoder.encode(url, "UTF-8");
这将导致
的http%3A%2F%2Flocalhost%3A8080%2Fxyz.html%3Fparam1%3Dparamx%26param2%3Dwt_jnknk%7Cnkn%7Clk_nm%26param3%3Dabc
基本上它会将|
更改为%7
。你应该能够解析