1. WAS 버전 : WebSphere ND All
2. OS : All
3. Error 발생 시점 : client.encoding.override 옵션을 사용해서 KSC5601 로 인코딩하여 문제없이 한글이 나오나
AJax 의 XMLHTTPRequest 을 사용하는 경우에 폼 데이터의 한글이 깨져서 나옴
4. Error message :
없음....page 의 한글이 일부 깨져서 출력
5. 예상 이유 :
WebSphere 서버 설정에서 client.encoding.override을 KSC5601로 설정할 경우 클라이언트로부터 넘어오는 모든 폼 데이터는
강제로 KSC5601로 인코딩 된다. 문제는 XMLHTTPRequest을 사용하여 POST 방식으로 폼 데이터를 전송하게 되면 폼 데이터가
디폴트로 UTF-8로 인코딩된다는 것이다. 따라서 이 폼 데이터를 전송하게 되면 UTF-8형식으로 인코딩된 한글은
웹스피어 서버 설정에 의해서 KSC5601로 강제 변환되어 결국 한글이 모두 깨지게 된다.
6. 조치 방안 :
이 문제의 가장 간단한 해결 방법은 client.encoding.override를 사용하지 않고 각 페이지마다 인코딩 방식을 지정하는 것이다.
또다른 방법은 client.encoding.override을 UTF-8로 사용하는 것이다. 이게 가장 이상적인 방법이 되겠다.
모든 한글 데이터를 UTF-8로 처리하자는 이야기다.
마지막 해결 방법은 default.client.encoding 을 사용하는 것이다.
WebSphere V4 이전에는 캐릭터 인코딩 시에 가장 우선시 되는 옵션이었으나 V4 이후부터는 client.encoding.override을
우선 적용하고 client.encoding.override이 지정되지 않았을 경우 각 페이지에서 지정된 인코딩 방식을 적용하게 된다.
이마저도 지정되어 있지 않을 경우 default.client.encoding 이 사용되게 된다. 따라서 default.client.encoding 을
사용하면 UTF-8로 명시적으로 인코딩 된 데이터의 경우 UTF-8 형식으로 먼저 처리할 수 있게 된다.
참조 : http://blog.naver.com/onthebed?Redirect=Log&logNo=130001462303
'IBM - old > WAS 문제&해결' 카테고리의 다른 글
[WVE]특정 어플리케이션의 서비스가 되지 않고 WAS log 에는 아무것도 안 나올경우 (0) | 2016.05.30 |
---|---|
JDK v6.0 이상에서 Compressed references 를 사용할때 Native OOM 이슈 (0) | 2016.05.30 |
WebSphere 애플리케이션안의 심볼릭 링크 인식 못할 경우 (0) | 2016.05.09 |
Apache Axis2 runtime 을 포함하는 어플리케이션을 deploy 시에 ClassCastException 발생 (0) | 2016.05.09 |
Fixpack 7.0.0.15 업데이트 후에 Oracle 관련 작업시에 Exception 발생 (0) | 2016.05.09 |
댓글