WebSphere 서버 설정에서 client.encoding.override을 KSC5601로 설정할 경우 클라이언트로부터 넘어오는 모든 폼 데이터는 강제로 KSC5601로 인코딩 된다. 물론 평소에는 아무 문제없이 잘 작동한다.
문제는 XMLHTTPRequest을 사용하여 POST 방식으로 폼 데이터를 전송하게 되면 폼 데이터가 디폴트로 UTF-8로 인코딩된다는 것이다. 따라서 이 폼 데이터를 전송하게 되면 UTF-8형식으로 인코딩된 한글은 웹스피어 서버 설정에 의해서 KSC5601로 강제 변환되어 결국 한글이 모두 깨지게 된다.
이 문제의 가장 간단한 해결 방법은 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
'헬로마켓'과 함께하는 스마트한 중고 아이템 거래