Java URL请求默认使用iso-8859-1进行解码,因此无法识别中文会导致路径不对报错。
解决方法:将URL字符串进行中文转码处理
private 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");
}