UTF-8 개발환경 만들기

1. 통합빌드 서버의 기본 인코딩을 UTF-8로 설정.
우분투를 통합빌드 서버로 쓴다면 기본이 UTF-8이니 별 문제는 없겠다.

2. 빌드 서버에 접속할 telnet/ssh 터미널 프로그램에서 UTF-8 사용.
옛날 터미널 중에는 UTF-8을 미지원 하는 게 많은 것 같다. 찾아본 결과 UTF-8을 지원하는 터미널은 다음과 같다.
* PuTTY
설정의 Window > Translation 으로 들어가서
Received data assumed to be in which character set 옵션을 UTF-8 로 변경.
PuTTY 다운로드 : http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
* TeraTerm (4.60 이후 버전)
Setup > General… > Language 에 Korean 설정.
Setup > Terminal… 으로 들어가서 아래 쪽에 locale: korean / CodePage: 949 입력.
TeraTerm 다운로드 : http://en.sourceforge.jp/projects/ttssh2/releases/

3. 이클립스 기본 인코딩 환경을 UTF-8로 설정.
이클립스의 기본 인코딩은 시스템 인코딩에 따르기 때문에 한글 윈도우의 경우 MS949 이다. 이것을 UTF-8로 설정해 주면 된다.
* 이클립스 메뉴 Windows > Preferences
왼쪽 위 검색창에 encod 라고 타이핑 후 왼쪽 메뉴 중 아래 메뉴의 Encoding 옵션을 변경.
* General > Workspace : Java 파일을 비롯한 기본 인코딩
* Web > CSS Files, HTML Files, JSP Files : 웹 관련 각각 파일 타입 별 인코딩
* XML > XML Files : XML은 기본 값이 UTF-8이니 변경할 필요는 없다.
이렇게 변경하면, 새 프로젝트를 만들 때 UTF-8로 생성된다.

4. 이클립스 프로젝트 인코딩을 UTF-8로 설정.
기본을 UTF-8로 변경했더라도 팀에서 설정을 깜빡한 채 체크아웃 받을 수도 있는 팀원을 위해 프로젝트 마다 인코딩 기본값 말고 명시적으로 설정해 주는게 좋다.
* 이클립스 메뉴 Project > Properties
Resource > 에서 Text file encoding 을 Other로 선택하고 UTF-8 로 변경.
여기서 변경하면 프로젝트 안에 .settings/org.eclipse.core.resources.prefs 파일 내용에 UTF-8 로 명시된다. (기본 패키지 익스플로러에서는 .settings 폴더가 안 보이는데, View Menu(▽모양)의 Filters… 에서 *.resources 체크를 해제하면 볼 수 있다)
* 혹시나 기존에 MS949 로 작성된 프로젝트에 한글로 쓰여진 파일이 있다면 파일의 인코딩을 변환해 주어야 한다. EUC-KR과 UTF-8 상호 변환해주는 유틸리티를 구해서 이용하거나( http://jinmoda.tistory.com/228 ), 직접 프로그램을 만들어서 변환해도 된다. 한 두페이지 정도라면 프로젝트 설정 변경 전에 메모장에 copy 했다가. 설정 변경 후 다시 paste 해도 된다;;

5. 메이븐을 쓰는 경우 pom.xml 에 컴파일 인코딩을 UTF-8로 설정.
maven-compiler-plugin 의 <encoding> 속성에 UTF-8을 명시해야 한다는 건 대부분의 사람이 알 것이다.
추가로 site reporting 을 이용한다면, maven-pmd-plugin 과 javancss-maven-plugin 의 <sourceEncoding> 속성에도 명시해야 한다.
인코딩 설정이 메이븐 플러그인 여러 곳에 퍼져 있는 것이 거슬리면, JDK version과 함께 상단에 <properties> 태그에 등록해 두면 편리하다. (maven-pmd-plugin 에서도 JDK 버전을 요구한다)

...생략...
 <properties>
  <encodingtype>utf-8</encodingtype>
  <jdkversion>1.6</jdkversion>
 </properties>
...생략...
    <plugin>
     <artifactId>maven-compiler-plugin</artifactId>
     <configuration>
      <encoding>${encodingtype}</encoding>
      <source>${jdkversion}</source>
      <target>${jdkversion}</target>
     </configuration>
    </plugin>
...생략...

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 항목은 *(으)로 표시합니다