Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/181.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在android中对url进行编码,结果如下所示?_Android_Url_Encoding - Fatal编程技术网

如何在android中对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

我想转换下面的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字符串并创建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");