Skip to content
DarkKaiser의 블로그
DarkKaiser의 블로그
  • 개발 관련 자료(노션)
  • Raspberry Pi(노션)
  • WD My Cloud(노션)
  • GitHub
DarkKaiser의 블로그

UTF-8 개발환경 만들기

DarkKaiser, 2011년 7월 7일2023년 9월 5일

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>
...생략...
eclipse

글 내비게이션

Previous post
Next post

답글 남기기 응답 취소

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

최신 글

  • AssertJ 소개testCompile ‘org.assertj:assertj-core:3.6.2’ 2017년 9월 14일
  • 자주 사용되는 Lombok 어노테이션 2017년 9월 14일
  • 유니코드 #3 2017년 9월 14일
  • 유니코드 #2 2017년 9월 14일
  • 유니코드 #1 2017년 9월 14일

최신 댓글

    카테고리

    • 개인 자료 (1)
      • 일기 (1)
    • 주절주절 (7)
    • 프로그래밍 갤러리 (16)
    • 프로그래밍 언어 (186)
      • Java (29)
      • C/C++/VC++ (114)
      • C# (11)
      • Visual Basic (6)
      • 안드로이드 (9)
      • Objective-C (5)
      • JavaScript (4)
      • JSP/Servlet (2)
      • Python (4)
      • 어셈블러 (1)
    • 개발++ (44)
      • Book (11)
        • Joel On Software (10)
      • 프로젝트 관리 (6)
      • Maven (1)
      • 디버깅 (1)
      • DirectX (1)
      • Silverlight (1)
      • RESTful (1)
      • Hacking (1)
      • WDM (4)
      • VoIP (5)
      • 기타 (1)
    • 개발 도구 (15)
      • eclipse (14)
      • Sublime Text (1)
    • 네트워크 (7)
    • 설치 및 배포 (7)
      • InstallShield (2)
      • NSIS (4)
    • 버전 관리 (9)
      • Git (2)
      • CVS (2)
      • Subversion (5)
    • 데이터베이스 (7)
      • Oracle (3)
      • Sybase (2)
      • MS-SQL (2)
    • 단위테스트 (3)
      • JUnit (1)
      • NUnit (2)
    • 버그추적시스템 (2)
      • mantis (2)
    • 운영체제 (7)
      • Windows (5)
      • 리눅스 (2)
    • WAS (3)
      • WebLogic (3)
    • 디자인패턴 (1)
    • 디지털 이미지 프로세싱 (16)

    태그

    ArrayList ATL BMP CAB CAB 파일 CD-ROM COM DCOM Downcasting for each GetLastError() Java JDT JoelOnSoftware Lokbok netsh NUnit Python StringBuilder Subverion SVN TR1 unicows Upcasting WAVE weak_ptr WebClient Wrap 내장 객체 레이아웃 리소스 리팩토링 마우스 문자 스트림 바이트 스트림 배포 비스타 빌드 서브클래싱 스트림 시스템 에러메시지 오피스파일구별 임시파일 지역클래스 타입 라이브러리

    메타

    • 로그인
    • 엔트리 피드
    • 댓글 피드
    • WordPress.org
    ©2025 DarkKaiser의 블로그 | WordPress Theme by SuperbThemes