url中存在中文的时候,不能直接对整个url路径进行编码,所以可以使用正则表达式通过对url中存在的中文字符以及空格进行编码:
public static String urlEncodeChinese(String url) {
try {
Matcher matcher = Pattern.compile("[\\u4e00-\\u9fa5]").matcher(url);
String tmp = "";
while (matcher.find()) {
tmp = matcher.group();
url = url.replaceAll(tmp, URLEncoder.encode(tmp, "UTF-8"));
}
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return url.replace(" ","%20");
}