如何避免递归url解码

时间:2012-08-26 14:48:15

标签: java urlencode urldecode

我正在编写类似图像代理的东西,我从我的网站前端接收URL,然后我下载图像,重新调整大小,并返回较小的图像供前端和客户端从“代理”下载。 这意味着我需要处理各种url模式,这就是为什么我选择解码给定的url而不是使用URIUtils.decode对其进行编码:

private String fixUrl(String fromUrl) throws URIException {
    fromUrl = URIUtil.decode(fromUrl);
    fromUrl = URIUtil.encodeQuery(fromUrl);
    return fromUrl;
}

这应该可以帮助我处理已编码的网址。 我的问题是一些网址是双重编码的,从我看到的,URIUtils.decode执行递归解码,这意味着在双重编码网址的情况下,我会得到一个不起作用的坏网址。

有一种简单的方法只能解码一次吗?

1 个答案:

答案 0 :(得分:0)

我会尝试检查该网址是否仍包含字符%。如果它不包含任何%,则它不会被编码,您可以停止解码过程。