본문으로 바로가기

URLDecoder: Illegal hex characters in escape (%) pattern

category 코딩/PHP 2016. 8. 29. 15:36

현상

  • 데이터를 전송하는 페이지 : PHP
  • 데이터를 수신하는 페이지 : JSP

위 페이지끼리 XML 데이터를 POST 형식으로 주고 받는데, 특정 데이터 전송 시 JSP 페이지에서 아래 오류가 발생하였다.

 

Error Message

java.lang.IllegalArgumentException: URLDecoder: Illegal hex characters in escape (%) pattern

원인

전송 문자열에 % 기호가 포함된 경우,

URL Decode 과정에서 % 이후 문자열은 16진수로 인식하는데 변환이 되지 않으면 발생한다고 한다.

$goodsnm = "헬로 3겹데코 27m 30롤 (*100%천연펄프)"; // 예시

해결 방법

전송 전(URL Encode 전)에 % 기호를 %25로 변경

$goodsnm = str_replace('%', '%25', $goodsnm);