2009-09-14 3 views
1

일부 매개 변수를 쿼리에 추가하는 중입니다. 이들 매개 변수의 값은 "a %%", "%"등등 일 수 있습니다. 자바 코드 측. 구문 분석 매개 변수 메신저 변환 전환 문자 가져 오기 아래와 같이 예외 로그에 표시됩니다. .쿼리 매개 변수의 "%"값에 대해 charconversion 예외가 발생합니까?

13 : 14 : 39,555 ERROR [STDERR] java.io.CharConversionException : EOF 13 : 14 : 39,555 ERROR [STDERR] org.apache.tomcat.util.buf.UDecoder.convert에서 (UDecoder.java:119) 13:14:39,555 오류 [STDERR] at org.apache.tomcat.util.buf.UDecoder.convert (UDecoder.java:87) 13 : 14 : 39,555 오류 [STDERR] at org.apache.tomcat.util .http.Parameters.processParameters (Paramete rs.java:428) 13 : 14 : 39,555 ERROR [STDERR] org.apache.tomcat.util.http.Parameters.processParameters (Paramete rs.java:515)에서 13 : 14 : 39,555 org.apache.tomcat.util.http.Parameters.handleQueryParameters의 ERROR [STDERR] (Para meters.java:298) : 14 : 39,555 오류 [STDERR] at org.apache.coyote.tomcat4.CoyoteRequest.parseRequestParameters (Co yoteRequest.java:1933)

어떻게해야합니까?

답변

5

자바 코드로 전송되는 쿼리 문자열의 형식이 잘못된 것 같습니다. 백분율 기호는 쿼리 문자열에서 특별합니다. 문자를 식별하는 두 자리 16 진수를 사용합니다. 예를 들어, %20은 공백입니다. 백분율 기호를 쿼리 문자열에 올바르게 넣으려면 %25 (문자 25h는 유니 코드의 백분율 기호)을 사용합니다. 처리중인 쿼리 문자열의 문자가 실제로 %% 인 경우 형식이 잘못되어 측면을 수정하여 보내고 싶을 것입니다.

편집 : 귀하의 의견에 잘못된 검색어 문자열을 보내는 사람이라고 말합니다. 제대로 쿼리 매개 변수를 인코딩하기 위해, encodeURIComponent 자바 스크립트 함수를 사용

var encodedValue; 
encodedValue = encodeURIComponent(yourTextfield.value); 
someurl = "http://example.com?x=" + encodedValue; 
+0

실제로 내가 .I이 jaavscript.so 사용하여 문자열을 조회하려면이 텍스트 상자의 값을 추가 오전 입력 텍스트 상자 (searchinput)에서 쿼리 매개 변수의 값을 얻고있다 나는 그것이 "%"인 경우에도이 텍스트 상자의 값을 보낼 수있는 방법이 필요합니다. –

관련 문제