charset을 사용하여 전달 된 값에 대한 URL 디코딩을 수행하는 아래의 메소드가 있습니다.는 재귀 적으로 메소드를 호출하지만 두 번째에만 로그합니까?
value = value.replaceAll("%(?![0-9a-fA-F]{2})", "%25");
value = value.replaceAll("\\+", "%2B");
value = URLDecoder.decode(value, charset.name());
그리고 다시 URLDecoder.decode
라인이 예외를 두 번 발생하면, 그때가를 기록합니다 URLDecoder.decode
라인은 내가 세 줄 아래에 같은 value
를 실행하려면 다음 UnsupportedEncodingException
처음 발생하는 경우 이제
public String decodeValue(String value, Charset charset) {
if (!Strings.isNullOrEmpty(value)) {
try {
value = URLDecoder.decode(value, charset.name());
} catch (UnsupportedEncodingException ex) {
// log error
return null;
}
}
return value;
}
오류가 있지만 두 번째 시간 및 반환 널 값 그렇지 않으면 디코딩 된 값을 반환합니다.
이 작업을 수행하는 가장 좋은 방법은 무엇입니까?
이 작업을 수행 할 방법이나 가장 멋진 솔루션을 찾고 있습니까? – shmosel
내가 이미 알고있는 다른 try/catch 블록을 추가 중입니다. 나는 그것이 있으면 더 좋은 방법이나 우아한 방법을 찾고있었습니다. –
거부 된 것으로 보이는 수정 사항을 제안했습니다. 여기서 재귀는 어디입니까? –