0

我在通过电子邮件命名的服务器上有图像,所以当我尝试在我的应用程序上下载它们时,路径上未显示@符号,无论如何要停止转义这个符号?

示例:正确的路径 Http://www.xxxxx.com/a@a.com.jpg

错误的路径 Http://www.xxxxx.com/aa.com.jpg

我尝试了 URL 编码,但在我的情况下它没有用

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;

}
4

1 回答 1

0

尝试使用 Android SDK 中的URLEncoder

try {
    myFileUrl = new URL(java.net.URLEncoder.encode(fileUrl));
} catch (MalformedURLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}

编辑:

刚看到我的错误。那是行不通的,因为它正在对整个 URL 进行编码。

您必须像这样将电子邮件地址与 URL 的其余部分分开。

    myFileUrl = new URL("http://www.xxxx.com/"+java.net.URLEncoder.encode(email));

或者,只需替换问题字符。

    myFileUrl = new URL(fileUrl.replace("@","%40"));
于 2013-06-03T16:33:12.570 回答