톰캣 서버를 사용하는 경우 로컬에서 잘 작동하는 어플리케이션을 실제 서비스 하는 서버에 올렸더니 GET방식으로 받는 파라미터관련하여 한글을 제대로 인식하지 못하는 경우가 발생하였습니다.
심지어는 다음과 같은 코드가 들어가도 한글을 제대로 인식하지 못하더군요.
[code]request.setCharacterEncoding(“UTF-8”);[/code] Spring Framework의 org.springframework.web.filter.CharacterEncodingFilter를 사용하여도 한글이 적용이 안되는 부분이 발생합니다.
보통의 경우 이 문제를 해결하기 위해 다음과 같은 방법을 사용합니다. [code]String param = new String(request.getParameter(“param”).getBytes(“8859_1”), “UTF-8”);[/code]
하지만 위와같은 방법은 또다른 문제를 야기합니다. Ajax통신을 사용할 때 발생하더군요. 윈도우 운영체제기반의 개발환경, 리눅스 서버와 같이 서버 환경이 틀리면 로컬에서는 잘 작동하는데 서버에서는 안되고, 서버에서는 잘되는데 로컬에서는 안되는 문제가 발생합니다.
그럴때는 그냥 간단하게 개발 환경을 서버와 동일하게 해주시면 됩니다. 설치한 아파치의 server.xml의 설정의 Connector 설정에 URIEncoding=”UTF-8″ 설정이 들어가게 되면 이 모든 문제가 해결됩니다. 물론 서버에도 동일한 설정이 되어있다는 가정하게 말씀드리는 것입니다.^^; 1276041024.xml톰캣을 설치한 위치의 server.xml을 위의 파일로 변경하신 후에, 이클립스의 Server들을 모두 삭제하고 다시 추가해 주시면 바뀐 설정으로 적용되어 추가됩니다.
org.springframework.web.bind.ServletRequestUtils을 사용하면서 한글 문제가 아쉬웠는데 굳이 소스를 커스터마이징하거나 추가적인 코드 없이 자연스럽게 UTF-8환경의 한글을 작은 문제도 없이 사용가능합니다.
4. Eclipse 주요 플러그인 설치 Eclipse 자체에서 간단하게 플러그인을 추가 할 수 있습니다. Eclipse를 실행한 후 Help – Software Updates – Find and Install – Search for new features to install 을 선택하여 New Remote Site를 눌러 다음을 추가합니다.
5. Eclipse UTF-8 기반으로 설정 Eclipse를 실행 후 Window – Preferences… 에 들어갑니다.
General – Content Types 이하 모든 파일의 Default encoding을 UTF-8로 변경합니다. 바로 하위 적용이 안되므로 일일이 하위로 내려가며 모두 설정해 주시면 됩니다.
Web and XML 밑의 모든 파일에 대해 Encoding을 UTF-8로 변경해 줍니다.
이건 덤이긴 한데 스펠링 체크 기능이 영어밖에 지원안하고 또한 별로 무의미한 기능이므로 끄겠습니다.
6. Spring Framework 및 준비물 다운로드 http://www.springframework.org/download 에서 스프링 프레임워크 최신판을 받겠습니다. 현재 2.5.4버젼이 최신버젼입니다. spring-framework-2.5.4-with-dependencies.zip 를 받으면 필요한 모든 파일이 들어있습니다.