2012-08-26 3 views
0

나는 내 프런트 엔드에서 URL을받는 이미지 프록시와 같은 것을 쓰고 있으며, 이미지를 다운로드하고 크기를 조정 한 다음 프런트 엔드와 클라이언트를 위해 더 작은 이미지를 반환합니다. "프록시"에서 다운로드하십시오. 나는 주어진 URL을 디코딩하고보다 것은 URIUtils.decode을 사용하여 인코딩을 선택한 이유 이 내가 URL 패턴의 모든 종류의 처리를 취할 필요가 의미, 이것이다 :재귀 URL 디코딩을 피하는 방법

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

이 나 URL을 알아서 도움이 될 것입니다 이미 인코딩되어 있습니다. 제 문제는 URL 중 일부가 이중으로 인코딩되어 있고 URIUtils.decode가 재귀 적 디코딩을 수행한다는 것입니다. 이는 이중 인코딩 된 URL의 경우 작동하지 않는 잘못된 URL을 얻게된다는 것을 의미합니다.

한 번만 해독하는 간단한 방법이 있습니까?

+0

이렇게 아파치 HTTP 구성 요소에 관한 문제입니까? – home

답변

0

URL에 여전히 문자 %이 있는지 확인하려고합니다. %이 포함되어 있지 않으면 인코딩되지 않으며 디코딩 절차를 중지 할 수 있습니다.

+0

공간이 '+'로 인코딩되는 "not-quite-official-official"인코딩은 어떻습니까? 나는 % _or_ +를 확인해야한다고 생각합니다. (엄격하게 인코딩하는지 여부에 따라 다름) – user949300