在用volley加载有中文路径的图片的时候报错了BasicNetwork.performRequest: Unexpected response code 404,后来看到了这个朋友的博文http://blog.csdn.net/qq_28950007/article/details/50774889,中文要Code=URLEncoder.encode("喜欢你","utf-8");确实要这么做,把中文转码才行,可是我在把整个路径放进去发现就报错了,后来看整个路径转码后的路径它把路径里面的冒号“:”和斜杠“/”都转码了,所以造成路径不行了,后来想到把路径“/”里面的内容转码就行了。我的路径是类似于这样的":9527/MobileServerice/VisitPic/60915/眼镜/2.产品照片_20180321104858.jpg",前面没有http之类的,要自己拼接。由于不变确定中文在哪个“/”分割里面,而且也不知道有多少个,所以就用下面的方法全部遍历转码了。
public String getEncoderUrl(String url)
{
//把路径安/分割成数组
String[] urlArray = url.split("/");
String res="";
for(int i=0;i<urlArray.length;i++)
{
//第一个里面是":9527",里面的冒号不能转码
if(i==0)
{
res+=urlArray[0];
}else{
//对路径转码
try {
res+=URLEncoder.encode(urlArray[i],"UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
//转码后的字符串中间再加上斜杠线
if(i<(urlArray.length-1))
{
res+="/";
}
}
return res;
}