2011-10-02 64 views
0

我与JSoup和Android合作,以得到一些网站的图片网址,但某些URL中包含特殊字符,如(E,E,A ...),例如:JSoup得到的图像的绝对URL包含特殊字符

http://www.mysite.com /杜详细jour.jpg

的element.attr(“ABS:SRC”)返回的网址与上述

至今没有问题若要取得网址,但是当我在下面的代码提交网址它返回的文件没有找到(我从互联网上的一个例子中抓住了这个功能):

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格式,因为当我得到谷歌浏览器的图像的真实地址:

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

,并提交代码,如: 网址URL =新URL( “http://www.mysite.com/d%C3%A9tail%20du%20jour.jpg”);

图像加载正确,所以如何从JSoup获得此格式的网址?

感谢

回答

0

您需要使用URLEncoder从JSoup提取的URL。

喜欢的东西:

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

之间将会有特殊字符替换的空格的值%的东西

+0

URLEncode.encode(myurl, “UTF-8”)给我的“http:// www.mysite.com/d%C3%A9tail+du+jour.jpg“这不是我所需要的正确url,看起来像”http://www.mysite.com/d%C3%A9tail%20du%20jour。 jpg“ – user975502

+0

你有没有尝试过其他字符集编码,如HTTP.ISO_8859_1第二个参数? –

+0

与HTTP.ISO_8859_1仍然给我D%E9tail + du + jour.jpg通过html页面的源代码的方式表明,charset = utf-8 – user975502