More

이클립스 프로젝트와 파일 인코딩 euc-kr에서 utf-8 변경

euc-kr 인코딩 된 프로젝트를 UTF-8 인코딩으로 변경해야 하는 일이 생겼습니다. 

파일이 한 두 개가 아니라 (대략 300개) 전체를 다 바꿔야 해서 삽질 했네요.


1. 프로젝트 인코딩 변경

먼저 프로젝트 인코딩을 변경해줍니다. 

프로젝트에 마우스 오른쪽 - Properties - Resource 들어가면 Text file encoding 부분을 UTF-8로 변경.

이클립스 프로젝트 인코딩 변경


변경 완료 되었다면 상단 Window - Preferences 메뉴로 들어가 General - Content Types - Java Source File 부분의 Default 인코딩을 UTF-8 써주고 업데이트 합니다.

이클립스 Content type 변경


그리고 같은 Preferences 창에서 검색 부분에 encoding 이라고 검색하면 Web 부분이 나오는데 CSS Files, HTML Files, JSP Files 부분 하나씩 클릭해서 Encoding 부분이 Korean, EUC-KR 선택되어 있는 부분을 ISO 10646/Unicode(UTF-8) 변경합니다.
이클립스 css files 변경


2. 파일 인코딩 변경

여기까지 완료되었다면 java파일이나 jsp 파일의 한글이 전부 깨져 나오게 됩니다.

이클립스 파일 글씨 깨짐
파일 한글이 깨져 나오는 모습

아직 파일 인코딩을 바꾸지 않아서 나오는 현상으로 프로젝트는 UTF-8로 변경했지만 파일 인코딩이 EUC-KR 이기에 파일 인코딩을 변경하면 정상적으로 돌아옵니다.

파일 인코딩 변경은 goofygod님 블로그에 있는 파일 인코딩 일괄 변경 프로그램을 받아서 사용 했습니다. exe 파일 하나 있는 아주 단순한 유틸리티로 변경할 원본 파일 인코딩과 변경 후 적용될 인코딩을 선택 후 폴더를 통으로 변환 할 수 있습니다.

저는 WebContent 폴더를 통으로 euc-kr 인코딩에서 UTF-8로 한번에 변환했습니다. 변환 완료 후 확인해보면 한글이 깨지던 부분이 정상으로 돌아옵니다.

파일 인코딩 일괄 변경 프로그램
변환 인코딩 지정하고 폴더 선택 후 변환만 하면 완료


3. 개별 파일 charset 변경

마지막으로 jsp 파일이나 html 파일에 하드 코딩 되어 있는 charset 변경 작업이 필요합니다. 

이클립스 상단 메뉴의 Search - File 메뉴를 선택.

이클립스 file search


Search - File Search 메뉴에서 Containing text 부분에 euc-kr 입력하고 Replace 클릭합니다.

이클립스 euc-kr utf-8 변경


입력한 패턴과 일치하는 문자열을 변경할 문자열로 한번에 바꿔주는 기능입니다. 
With 부분에 UTF-8 입력하고 ok 클릭.

이클립스 euc-kr utf-8 캐릭터셋 일괄 변경
euc-kr 문자열을 UTF-8 변경합니다

이클립스 euc-kr utf-8 변경 작업 진행
실행하면 일괄 변경 작업이 실행됩니다

완료 후 다시 File Search Containing text 부분에 euc-kr 입력하고 Search 버튼을 눌러 아직 변경 안된 문자열이 있는지 확인해봅니다.

이클립스 euc-kr 변경 여부 검색
Search 버튼으로 변경 안된 부분이 있는지 확인

이클립스 euc-kr 변경 여부 검색
전부 변경되어 euc-kr 검색 되는 게 없는 걸 볼 수 있습니다