gpt4 book ai didi

android - 下载图像 URL 包含 "è"

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:57:27 24 4
gpt4 key购买 nike

我尝试在以下网址下载图片:

http://upload.tapcrowd.com//cache//_cp_100_100_stand_filière_300x212.jpg

正如您在浏览器中看到的那样,这显示了一张图片,但在我的应用程序中我收到了 FileNotFoundException。

但是,如果我将图像的 url 从“è”更改为“e”。我可以成功地将它下载到我的应用程序中。然而,这只是一个临时解决方案,因为它需要能够下载带有 unicode 符号的图像。

我怎样才能做到这一点?

用于下载图片的方法:

        Bitmap bitmap = null;
URL imageUrl = new URL(url);
HttpURLConnection conn = (HttpURLConnection) imageUrl.openConnection();
conn.setConnectTimeout(30000);
conn.setReadTimeout(30000);
conn.setInstanceFollowRedirects(true);
InputStream is = conn.getInputStream();
OutputStream os = new FileOutputStream(f);
Utils.CopyStream(is, os);
os.close();
bitmap = decodeFile(f, maxheight, maxwidth);

适合我的结果代码:

        Bitmap bitmap = null;
int slashIndex = url.lastIndexOf('/');
String filename = url.substring(slashIndex + 1);
filename = URLEncoder.encode(filename, "UTF-8");
url = url.subSequence(0, slashIndex + 1) + filename;
URL imageUrl = new URL(url);
HttpURLConnection conn = (HttpURLConnection) imageUrl.openConnection();
conn.setConnectTimeout(30000);
conn.setReadTimeout(30000);
conn.setInstanceFollowRedirects(true);
InputStream is = conn.getInputStream();
OutputStream os = new FileOutputStream(f);
Utils.CopyStream(is, os);
os.close();
bitmap = decodeFile(f, maxheight, maxwidth);

最佳答案

使用 URLEncoder 对 url 进行编码:

String baseUrl = "http://upload.tapcrowd.com//cache//";
String imageName = "_cp_100_100_stand_filière_300x212.jpg";
URL imageUrl = new URL(baseUrl+URLEncoder.encode(imageName ,"UTF-8"));

它适用于您的浏览器,因为浏览器足够智能,可以在您在网址栏中键入重音符号时进行编码。

关于android - 下载图像 URL 包含 "è",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14647622/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com