我在服务器上有通过电子邮件命名的图像,所以当我尝试在我的应用程序上下载它们时路径上没有显示@符号时,无论如何都要停止转义此符号吗?
示例:
正确的道路
Http://www.xxxxx.com/a@a.com.jpg
错误的路径
Http://www.xxxxx.com/aa.com.jpg
我尝试过网址编码,但在我的情况下没用[/ p>]
Bitmap downloadFile(String fileUrl) {
URL myFileUrl = null;
Bitmap bmImg = null;
try {
myFileUrl = new URL(fileUrl);
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
HttpURLConnection conn = (HttpURLConnection) myFileUrl
.openConnection();
conn.setDoInput(true);
conn.connect();
InputStream is = conn.getInputStream();
bmImg = BitmapFactory.decodeStream(is);
// imView.setImageBitmap(bmImg);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return bmImg;
}
答案 0 :(得分:0)
尝试使用Android SDK中的URLEncoder。
try {
myFileUrl = new URL(java.net.URLEncoder.encode(fileUrl));
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
修改强>
刚看到我的错误。这不起作用,因为它编码整个URL。
您必须将电子邮件地址与其他网址分开。
myFileUrl = new URL("http://www.xxxx.com/"+java.net.URLEncoder.encode(email));
或者,只需替换问题字符。
myFileUrl = new URL(fileUrl.replace("@","%40"));