JSoup获取带有特殊字符的图像的绝对url

发布于 2024-12-07 19:19:06 字数 884 浏览 1 评论 0原文

我正在使用 JSoup 和 Android 从某些网站获取图像 url,但某些 url 包含特殊字符,例如 (é,è,à...) 示例:

http://www.mysite.com/détail du jour.jpg

element.attr("abs:src") 返回与上面相同的 url

到目前为止,检索 url 没有问题,但是当我提交这个网址下面的代码返回找不到文件(我从互联网上的示例中获取了此函数):

public Object fetch(String address) throws MalformedURLException,IOException {
 try {
   URL url = new URL(address);
   Object content = url.getContent();
   return content;
  } catch (Exception e) {
    return null;
  }
}

我认为问题出在 url 格式中,因为当我在 google chrome 中获取图像的真实地址时:

http://www.mysite.com/d%C3%A9tail%20du%20jour.jpg

并在代码中提交,如下所示: URL url = 新 URL("http://www.mysite.com/d%C3%A9tail%20du%20jour.jpg");

图像加载正确,那么如何从 JSoup 获取这个格式化的 url?

谢谢

i am working with JSoup and Android to get image urls from some site but some urls contains special characters like (é,è,à...) example :

http://www.mysite.com/détail du jour.jpg

the element.attr("abs:src") returns the same url as above

till now no problem to retrieve the url but when i submit this url in the code below it returns file not found (i grabbed this function from an example on the internet) :

public Object fetch(String address) throws MalformedURLException,IOException {
 try {
   URL url = new URL(address);
   Object content = url.getContent();
   return content;
  } catch (Exception e) {
    return null;
  }
}

i think the problem is in the url format because when i get the real address of the image in google chrome :

http://www.mysite.com/d%C3%A9tail%20du%20jour.jpg

and submit it in the code like :
URL url = new URL("http://www.mysite.com/d%C3%A9tail%20du%20jour.jpg");

the image loads correctly so how to get this formatted url from JSoup?

thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

蝶…霜飞 2024-12-14 19:19:06

您需要使用 URLEncoder 从 JSoup 中提取 url。

类似于:

URL url = new URL(URLEncoder.encode(address));

之间的空格将被特殊字符值 %something 替换

You need to use URLEncoder for the extracted url from the JSoup.

Something like:

URL url = new URL(URLEncoder.encode(address));

The spaces between will be replaced with special character values %something

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文