Java 图像的URL编码错误
在我的应用程序中,有一个ImageView可以显示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
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();