스트럿츠를 다룬 거의 대부분의 문서, 책들이 MessageResources를 설명하면서 native2ascii를 사용할 것을 요구한다. 그러나 본인은 국제화가 아무리 중요하더라도 개발자의 불편함을 가중한다면 사용 안하느니만 못하다고 생각한다. 물론 build.xml에 걸어 빌드 중 자동으로 변환되도록 하는 등의 노력은 있지만 본인은 이것 역시 불편하다고 생각한다.
이것은 스트럿츠에서 메시지 파일을 읽어올때 사용하는 Java의 Properties 클래스가 ISO 8859-1만 지원해서 생기는 문제로, 근본적인 해결책은 스트럿츠의 MessageResourcesFactory를 상속받아 메시지 파일을 UTF-8로 읽도록 구현하면 된다. 이렇게 하면 한국어 뿐만 아니라 다른 언어를 사용할때도 native2ascii를 사용할 필요가 없다. 매우 간단하므로 구현 내용 및 사용법은 첨부한 소스를 읽어보도록 한다. 스트럿츠 1.2에서 테스트했다.
소스 저작권 안내: 본인은 다음 소스에 대한 저작권을 완전히 포기한다. (PUBLIC DOMAIN) 상업적이던 비상업적이던 고쳐쓰던 어디에 어떻게 사용하더라도 좋다. (주의: 메시지를 검색하는 코드는 스트럿츠 코드이며 스트럿츠 코드는 Apache 라이센스임.)
- UTF8MessageResourcesFactory.java
- UTF8Messages.java
UTF8Messages.zip
