Java-Can';如果src有连字符,则不能从internet下载图像

Java-Can';如果src有连字符,则不能从internet下载图像,java,image,hyperlink,save,Java,Image,Hyperlink,Save,我有一个程序,涉及从互联网上下载一个图像,从上述图像的src,它工作完美的大部分时间,但如果图像的src有一个“-”在地址中,我得到一个IOException BufferedImage image = null; fileName = emailFirst + "_at_" + emailLast + " (" + fullName + ")"; URL url = new URL(imageUrl); image = ImageIO.read(url); System.out.print

我有一个程序,涉及从互联网上下载一个图像,从上述图像的src,它工作完美的大部分时间,但如果图像的src有一个“-”在地址中,我得到一个IOException

BufferedImage image = null;
fileName = emailFirst + "_at_" + emailLast + " (" + fullName + ")";

URL url = new URL(imageUrl);
image = ImageIO.read(url);

System.out.println("DIRECTORY: " + directory);
ImageIO.write(image, "jpg", new java.io.File(directory + "\\" + fileName + ".jpg"));
唯一一个失败的例子是url在“wp内容”中有一个连字符,如此链接


有什么想法吗?

如果你查看课程的文档,你会看到这个(我的重点)

URL类本身不会根据RFC2396中定义的转义机制对任何URL组件进行编码或解码。调用方负责对任何字段进行编码,这些字段需要在调用URL之前转义,还负责解码从URL返回的任何转义字段


要对其进行正确编码,您必须使用URL字符串初始化,并调用该方法以获取编码的URL。

能否编辑您的帖子并显示您获得的特定IO异常及其堆栈跟踪?使用URLENCDER,它应该可以工作URLENCDER不用于编码URL组件,不管其名称如何。URLEncoder用于使用对数据进行编码。这两种编码相似但不相同。要正确地对URL组件进行百分比编码,请创建并调用其toURL方法。@VGR你说得很对-我在这方面有点太快了。我改变了答案。