在包含空格时无法构建有效的URL

时间:2011-05-05 09:15:45

标签: java url spaces

我在Java中遇到了一个非常奇怪的错误。它涉及在包含空格时构建URL。例如,这个链接: camping at clark

以及此代码片段,它会重现错误:

String urlEncoded2 = "http%3A//www.sas.usace.army.mil/lakes/thurmond/images/camping+at+clark+2.jpg";

BufferedImage test = ImageIO.read(new URL(URLDecoder.decode(urlEncoded2, "UTF-8")));`

正如您所看到的,传递的url字符串是UTF-8编码的。但是,无论我如何传递它,这段代码总是失败。在我的应用程序中,我需要能够阅读传递的任何图像网址而没有排除。

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

"http%3A//www.sas.usace.army.mil/lakes/thurmond/images/camping+at+clark+2.jpg"

这不是有效的网址。

"http://www.sas.usace.army.mil/lakes/thurmond/images/camping at clark 2.jpg"

这不是有效的网址。

问题是第一个值只是垃圾。无论编码该值是什么都没有正确完成,这应该在源头修复。

正确的网址是:

"http://www.sas.usace.army.mil/lakes/thurmond/images/camping%20at%20clark%202.jpg"