2010-07-21 3 views
1

GET 쿼리 문자열에서 중국어 단어를 사용할 때 wep 응용 프로그램이있을 때 서버 측에 올바른 매개 변수를 가져올 수 없지만 POST 데이터에서 서버 측에서 올바른 매개 변수를 얻을 수 있습니다. 서버가 Tomcat입니다. 서버 측에서는 GBK 인코딩을 사용하여 HTTP 파라미터 을 얻습니다. 쿼리 문자열의 인코딩을 ISO8859-1에서 GBK로 변환하면 문제는 너무 많아서 change.so가 너무 많아서 어쨌든 필요합니다. IE가 GBK하지만 iso8859-1을 사용하여 쿼리 문자열을 전송하도록 구성합니다. IE의 "send UTF-8 url"옵션을 선택 취소하려고 시도했지만 나에게 적합하지 않았습니다 ...IE 8 인코딩 문제

PLZ HELP 내 나쁜 영국에 대한 사과!

// iPostChange INT는 0 ISO8859_1,1 : NoChange, 2 : ISO8859_1-> GBK, 3 : GBK-> ISO8859_1,5 : GBK가

String sFlowNo = DataConvert.toRealString(iPostChange,(String)CurComp.getParameter("FlowNo")); 

iPostChange는 인코딩 변환을 설정하는 데 사용되는, 디폴트 값은 1은 변경되지 않음을 의미합니다. FlowNo가 기본 iPostChange를 사용하여 URL (HTTP GET 쿼리 문자열)의 서버로 전달되는 경우 FlowNo가 중국어 단어로 간주됩니다. 올바른 중국어 문자열을 얻을 수 없지만 FlowNo가 POST 메서드를 사용하여 Form에 서버로 전달 된 경우 오른쪽 중국어 문자열을 얻을 수 있습니다.

IE8에서 URL에 중국어 문자를 사용할 수 없다는 것입니까?

+0

영어에 대한 문제가 없습니다. 실제 코드를 입력 해주십시오. – Anders

+0

감사합니다. Anders, 제 질문을 수정했습니다. – idiotgenius

답변

1

고정.

참조 : Tomcat wiki

Tomcat은 쿼리 문자열을 포함한 전체 URL의 기본 문자 인코딩으로 ISO-8859-1을 사용합니다 ("매개 변수를 GET"). 매개 변수를 해석하는 방법을 GET 지정하는 방법에는 두 가지가 있습니다

  1. 설정 특정 뭔가 server.xml의 요소에 URIEncoding 속성 (예를 들어, URIEncoding = "UTF-8").

  2. server.xml의 요소의 useBodyEncodingForURI 속성을 true로 설정하십시오. 그러면 커넥터는 GET 매개 변수에 대해 요청 본문 인코딩을 사용하게됩니다.

1

그것은 일부 브라우저는 UTF-8을 인코딩하고 다른 사람이 ISO-8859-1로 인코딩되므로, GET 요청의 문자 인코딩에 의존하지 않는 것이 좋습니다. 또한 적용되는 인코딩은 양식을 제출 한 페이지의 인코딩에 따라 달라집니다. 따라서 UTF-8로 인코딩 된 페이지의 한 양식이 UTF-8로 인코딩 된 GET 요청으로 이어지는 반면 페이지의 유사한 양식은 ISO-8859-1 인코딩은 ISO-8859-1 인코딩 요청으로 이어집니다.

자세한 내용은 What's the correct encoding of HTTP get request strings?도 참조하십시오.

+0

예! 나는 완전히 동의합니다. 그러나 JSP 페이지 중 기존 System.tons 을 유지하고 있습니다! : D – idiotgenius