android - 如何像下面的结果一样在 android 中编码 url?

标签 android url encoding

我想转换下面的url

https://sdcude.pdakmddda.at/sdtddio/img/thumbnails/original/Öffnungszeiten Test-638.jpg

https://sdcude.pdakmdda.at/sdtddio/img/thumbnails/original/%C3%96ffnungszeiten%20Test-638.jpg

Logcat01-29 16:40:36.195: W/System.err(15131): java.net.MalformedURLException: Protocol not found: https%3A%2F%2Fsdcdre.pdadkdedia.at%2Fdddio%2Fimg%2Fthumbnails%2Foriginal%2F%C3%96ffnungszeiten+Test-638.jpg
01-29 16:40:36.218: W/System.err(15131):    at java.net.URL.<init>(URL.java:178)
01-29 16:40:36.218: W/System.err(15131):    at java.net.URL.<init>(URL.java:127)
01-29 16:40:36.218: W/System.err(15131):    at com.peak.media.HomeActivityNewViewPager$FirstDownloadFileFromURL.doInBackground(HomeActivityNewViewPager.java:2478)
01-29 16:40:36.218: W/System.err(15131):    at com.peak.media.HomeActivityNewViewPager$FirstDownloadFileFromURL.doInBackground(HomeActivityNewViewPager.java:1)
01-29 16:40:36.218: W/System.err(15131):    at android.os.AsyncTask$2.call(AsyncTask.java:287)
01-29 16:40:36.218: W/System.err(15131):    at java.util.concurrent.FutureTask.run(FutureTask.java:234)
01-29 16:40:36.218: W/System.err(15131):    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
01-29 16:40:36.218: W/System.err(15131):    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
01-29 16:40:36.218: W/System.err(15131):    at java.lang.Thread.run(Thread.java:856)

编码后我需要以上结果。我不知道上面的 url 使用哪种编码。

String newurl=URLEncoder.encode(url,"UTF-8");

转换后我使用 UTF-8 得到以下 url

[https%3A%2F%2Fsddde.psdfma.co%2Fstudio%2Fimg%2Fthumbnails%2Foriginal%2F%C3%96ffnungszeiten+Test-638.jpg][2]

最佳答案

只是因为 url 中的空格 Ravi Thapliyal 答案是不正确的,否则它是正确的

下面对我来说是有效的

String ALLOWED_URI_CHARS = "@#&=*+-_ .,:!?()/~'%"; 
                    String spaceurl = Uri.encode(f_url[0], ALLOWED_URI_CHARS);
                    String newurl=spaceurl.replaceAll(" ", "%20");

关于android - 如何像下面的结果一样在 android 中编码 url?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28213165/

相关文章:

android - Horizo​​ntalScrollView 自定义适配器?

java - fragment 过渡?

delphi - 我可以使用 WebBroker 和 Delphi 创建干净的 URL 吗?

php - 重定向后查找网址并获取网站的IP地址

Java:如何将UTF-8(文字)转换为unicode

c# - 有没有更好的方法将任意输入转换为 ASCII?

android - 无法获取列表 <String> 中已安装应用程序的列表

java - 在android studio上打开pdf文件并打开黑屏pdf

tomcat - 无法从父主机访问 Docker 容器中的托管应用程序

encoding - dompdf特殊字符显示问号?