Java, JSP로 개발하면서 제일 빈번하고 많이 겪는 현상이 한글 깨짐 현상일 것입니다.
이 증상으로 이클립스 Save Problems 인 “Some characters cannot be mapped using “iso-8859-1” 와 같은 메세지가 나타날 수 있습니다.
에러 발생 원인
프로그램 개발 툴 환경에서 문자 인코딩 방식이 맞지 않으면 한글 같은 경우 깨지거나 알아볼 수 없는 문제로 변하기 때문입니다.
한글 같은 경우 대부분 EUC-KR, UTF-8 방식을 씁니다. 아마 저와 같은 개발자 분들은 유니코드 기반으로한 UTF-8을 많이 쓸 것 입니다.
다음과 같은 화면이 있습니다. 이클립스를 통해서 개발시 문서에 한글을 입력하고 저장하려고 할때 나타나는 인코딩 타입에 대한 에러 메세지 입니다.
내용인 즉슨 iso-8859-1에서 사용할 수 없는 문자가 있으니 문자를 지우던지 아니면 인코딩 방식을 바꾸라고 하는 메세지입니다.
에러 해결법
여기서 많은 분들이 Save as UTF-8을 누르시는데 이렇게 하면 예기치않은 인코딩 에러가 발생할 수 있습니다. 이런 방법보다는 개발 환경 인코딩 방식을 바꿔주는 편이 좋습니다.
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
JSP페이지 같은 경우는 다음의 문구를 페이지 최상단에 넣어주시면 해결 됩니다. 이런 방법 외에도 모든 문서를 일괄적으로 적용하는 방법도 있습니다.
일괄 적용
바로 이클립스의 설정으로 모든 페이지의 캐릭터 인코딩 방식을 바꿔줄 수 있습니다.
이클립스 상단의 Window -> Preferences로 들어가시고 General -> Content Type으로 이동합니다.
메뉴 안의 Content Type에 Text라는 항목을 선택하고 Default encoding을 UTF-8로 적으시고 Update를 누르시면 끝입니다.
그러면 한글을 입력하고 저장을 하셔도 위와 같은 에러가 나지 않습니다.