如何在android中对url进行编码,结果如下所示?
我想转换下面的url https://sdcude.pdakmddda.at/sdtddio/img/thumbnails/original/Öffnungszeiten测试-638.jpg 到 转换之后,我使用UTF-8得到了下面的url如何在android中对url进行编码,结果如下所示?,android,url,encoding,Android,Url,Encoding,我想转换下面的url https://sdcude.pdakmddda.at/sdtddio/img/thumbnails/original/Öffnungszeiten测试-638.jpg 到 转换之后,我使用UTF-8得到了下面的url [https%3A%2F%2Fsddde.psdfma.co%2Fstudio%2Fimg%2Fthumbnails%2Foriginal%2F%C3%96ffnungszeiten+Test-638.jpg][2]使用URL类帮助拆分URL字符串并创建U
[https%3A%2F%2Fsddde.psdfma.co%2Fstudio%2Fimg%2Fthumbnails%2Foriginal%2F%C3%96ffnungszeiten+Test-638.jpg][2]使用
URL
类帮助拆分URL字符串并创建URI。多参数化的URI
构造函数将负责为您编码URL,与urlcoder
不同,空格将正确转换为%20
,而不是+
URL url = new URL(
"http://example.com/studio/img/thumbnails/original/Öffnungszeiten Test-638.jpg"
);
try {
String encURL = new URI(url.getProtocol(),
url.getHost(), url.getPath(), null).toASCIIString();
System.out.println(encURL);
} catch (URISyntaxException e) {
e.printStackTrace();
}
输出:
仅仅因为url中有空间,拉维·塔普利亚尔的回答是不对的,否则就是对的 对我来说,下面是工作
String ALLOWED_URI_CHARS = "@#&=*+-_ .,:!?()/~'%";
String spaceurl = Uri.encode(f_url[0], ALLOWED_URI_CHARS);
String newurl=spaceurl.replaceAll(" ", "%20");
这不是你通过那个电话得到的吗?检查我的问题我有更新问题和logcatTrue。检查此项:感谢您分享答案,这是我以前见过的最好的答案。@Mahesh,我已经更新了答案以处理空间问题。我还切换到使用示例url。我相信这比你目前的方法容易得多。
URL url = new URL(
"http://example.com/studio/img/thumbnails/original/Öffnungszeiten Test-638.jpg"
);
try {
String encURL = new URI(url.getProtocol(),
url.getHost(), url.getPath(), null).toASCIIString();
System.out.println(encURL);
} catch (URISyntaxException e) {
e.printStackTrace();
}
http://example.com/studio/img/thumbnails/original/%C3%96ffnungszeiten%20Test-638.jpg
URI uri = new URI("https",
"sdcdre.deadmddia.co",
"/studio/img/thumbnails/original/sfsnungszeiten Test-638.jpg",
null,
null);
uri.toASCIIString();
String ALLOWED_URI_CHARS = "@#&=*+-_ .,:!?()/~'%";
String spaceurl = Uri.encode(f_url[0], ALLOWED_URI_CHARS);
String newurl=spaceurl.replaceAll(" ", "%20");