Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/364.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
Java 图像的URL编码错误_Java_Android_Url Encoding - Fatal编程技术网

Java 图像的URL编码错误

Java 图像的URL编码错误,java,android,url-encoding,Java,Android,Url Encoding,在我的应用程序中,有一个ImageView可以显示URL中的图像 我使用以下方法下载图像: Bitmap bitmap=null; URL imageUrl = new URL(url); HttpURLConnection conn = (HttpURLConnection)imageUrl.openConnection(); conn.setConnectTimeout(30000); conn.setReadT

在我的应用程序中,有一个ImageView可以显示URL中的图像

我使用以下方法下载图像:

        Bitmap bitmap=null;
        URL imageUrl = new URL(url);
        HttpURLConnection conn = (HttpURLConnection)imageUrl.openConnection();
        conn.setConnectTimeout(30000);
        conn.setReadTimeout(30000);
        conn.setInstanceFollowRedirects(true);
        InputStream is=conn.getInputStream();
        OutputStream os = new FileOutputStream(f);
        Utils.CopyStream(is, os);
        os.close();
        bitmap = decodeFile(f);
        return bitmap;
这仅适用于包含数字或英文字母的URL,不适用于任何其他字符,如空格:

好网址:

错误的URL:1.png

我试图更改URL编码URLEncoder.encode,但它更改了整个URL,包括斜杠等

编码后是否需要替换一些字符?或者有更好的方法

谢谢:

您不需要对整个URL进行编码,只需对来自 不可靠的消息来源-盐城

如果您只是处理URL的特定部分,并且 您知道如何构造或重构URL。更一般的 可以处理任何url字符串的方法,请参见下面我的答案克雷格 B

您不需要对整个URL进行编码,只需对来自 不可靠的消息来源-盐城

如果您只是处理URL的特定部分,并且 您知道如何构造或重构URL。更一般的 可以处理任何url字符串的方法,请参见下面我的答案克雷格 B


谢谢但还有一个小问题:它不适用于希伯来字符。我应该怎么做?我认为您需要使用URLEXENCODER显式地对希伯来文字符部分进行编码。似乎只有少数非ASCII字符由URI处理,请检查中的编码和解码URI组件部分,并检查这是否使用URL或IRI国际化资源标识符?其中包含希伯来文字符,所以它是IRI,不是吗?我现在有点困惑…这是一个IRI,所以你需要遵循这个。还有:URI的主机、端口和方案不符合编码条件,并且不能包含非法字符。因此,在构建URI之前,先对希伯来语部分进行编码。谢谢!:但还有一个小问题:它不适用于希伯来字符。我应该怎么做?我认为您需要使用URLEXENCODER显式地对希伯来文字符部分进行编码。似乎只有少数非ASCII字符由URI处理,请检查中的编码和解码URI组件部分,并检查这是否使用URL或IRI国际化资源标识符?其中包含希伯来文字符,所以它是IRI,不是吗?我现在有点困惑…这是一个IRI,所以你需要遵循这个。还有:URI的主机、端口和方案不符合编码条件,并且不能包含非法字符。因此,在构建URI之前,先对希伯来语部分进行编码。
String query = URLEncoder.encode("apples oranges", "utf-8");
String url = "https://stackoverflow.com/search?q=" + query;
String urlStr = "http://abc.dev.domain.com/0007AC/ads/800x480 15sec h.264.mp4";
URL url = new URL(urlStr);
URI uri = new URI(url.getProtocol(), url.getUserInfo(), url.getHost(), url.getPort(), url.getPath(), url.getQuery(), url.getRef());
url = uri.toURL();