异常描述:
使用XUtils中的BitmapUtils加载网络图片一直显示不出来,但是不报错,排查之后,发现是因为图片的路径里面包含中文.
解决方法:
将含中文的路径字符串进行URL编码之后,然后在用Bitmaputils加载即可
转换前:http://cdn.jin10.com/images/flag/mini/美国.png
转换后:http://cdn.jin10.com/images/flag/mini/%E7%BE%8E%E5%9B%BD.png
转URL编码的方式:
/**
* Utf8URL编码
* @param text
* @return
*/
public String Utf8URLencode(String text) {
StringBuffer result = new StringBuffer();
for (int i = 0; i < text.length(); i++) {
char c = text.charAt(i);
if (c >= 0 && c <= 255) {
result.append(c);
}else {
byte[] b = new byte[0];
try {
b = Character.toString(c).getBytes("UTF-8");
}catch (Exception ex) {
}
for (int j = 0; j < b.length; j++) {
int k = b[j];
if (k < 0) k += 256;
result.append("%" + Integer.toHexString(k).toUpperCase());
}
}
}
return result.toString();
}