이클립스에서 인코딩 설정
문자집합(Character Set)과 인코딩(Encoding)에 대해서 많은 개발자들이 같은 개념으로 이해하고 있으며 그렇기 때문에 이 둘의 차이점에 대해서도 거의 생각하지 않는듯 하다.
이글에서는 문자집합과 인코딩의 차이에 대해서 간략하게 소개하고 이클립스에서 어떻게 설정하는지를 다루고자 한다.
참고: http://www.jopenbusiness.com/mediawiki/index.php/문자셋과_인코딩
위의 참고 URL에 문자집합과 인코딩에 대해서 아주 잘 정리하고 있으며 다음은 정의 부분만 발췌했다.
문자셋과 인코딩의 정의
- 문자셋 (charset, Character Set)
- 하나의 언어권에서 사용하는 언어를 표현하기 위한 모든 문자(활자)의 모임을 문자셋이라고 한다. 다시 말하면 우리가 얘기하는 언어를 책으로 출판할 때 필요한 문자(활자)를 모두 모은 것이라고 보면 된다. 그러므로 부호와 공백 등과 같은 특수 문자도 문자셋에 포함된다.
-
영어의 경우 알파벳 대소문자와 특수 문자 등으로 간단하게 문자셋을 구성할 수 있지만 한글의 경우 출판에서 가나다 등으로 출판으로 함으로 훨씬 다양한 문자셋을 가지고 또한 한자를 병행해서 사용함으로 문자셋의 범위는 더욱 넓어진다.
- 추상적인 글자 셋으로 여러개의 인코딩을 가질 수 있다.
- MIME 문자셋은 IANA에서 정의하며 인터넷 및 XML 파일에서 사용한다.
- 인코딩 (encoding)
- 인코딩은 문자셋을 컴퓨터가 이해할 수 있는 바이트와의 매핑
규칙이다. 예를 들면 ASCII Code에서 ABC 등은 문자셋이고 A는 코드 65, B는 코드 66 등 바이트 순서와 매핑한 것이 인코딩이다.
따라서 문자셋을 어떻게 매핑하느냐에 따라 하나의 문자셋이 다양한
인코딩을 가질 수 있다.
- 추상적인 문자셋을 구체적인 bit-stream으로 표기하는 방법
- 여러가지 문자셋을 동시에 표시할 수 있다.
- 대부분의 인코딩에서는 대소문자를 구분하지 않는다.
- 대한민국에서 가장 많이 사용하는 인코딩은 "UTF-8", "KSC5601", "ISO-8859-1" 이다.
- 문자셋(인코딩)의 예
-
- 한글 : 8bit KSC5601 (8bit EUC-KR, 7bit ISO-2022-KR, ISO-2022-Int)
- 영문 : KSC5636, US-ASCII (둘 간의 차이는 화페 단위 뿐)
- 한글+영문 : KSC5861 (EUC-KR), KSC5636 + KSC5601를 모두 포함한다.
- 유니코드 : 4byte Unicode < ISO-10646 UCS (ISO-8859-1, UTF-8, UTF-16)
즉, "하나의 문자집합이 여러개의 인코딩을 가질 수 있다"는 사실에 주목해야만 한다.
그러나 우리가 폰트에 대해서 논의하는게 아니라면 거의 대부분 인코딩을 전제로 얘기한다고 볼 수 있으며 인코딩은 하나의 문자집합에 매핑되어야 한다.
이제 이클립스에서 어떻게 인코딩을 설정할 수 있는가를 알아보도록 한다.
처음 이클립스를 설치하면 기본값은 대부분 시스템의 file encoding을 따른다. 일부 XML(UTF-8), Java Properties(ISO-8859-1) 등 많이 사용하는 인코딩에 대해서는 기본값이 설정되어 있다. 최근 자바프로젝트의 경향을 보면 국제화(Globalization)로 인하여 다국어를 지원해야 할 경우가 빈번해지고 있어서 UTF-8 을 기본 문자집합(인코딩)으로 설정하고 있으므로 이클립스에 UTF-8로 설정하는 방법을 설명한다. (단, 각 파일별로 다른 인코딩을 설정할 수 도 있으므로 상황에 맞게 적용한다.)
1. Text Content Types 설정
Window -> Preferences -> General -> Content Types
2. Workspace Text file encoding 설정
3. Web file encoding 설정: CSS Files, HTML Files, JSP Files 모두 설정.
4. XML Files encoding 설정
5. PropertiesEditor 플러그인이 설치되어 있을 경우:
마지막 5번의 경우와 같이 특정 플러그인을 설치한 경우 해당 플러그인에서 인코딩을 별도로 설정해줘야 하는 경우가 있다. 현재 파일 인코딩이 어떻게 설정되어 있는지 확인하고 이클립스에서 설정해둬야 파일에서 한글이 깨지지 않고 정상동작할 것이다.
결론:
어떤 개발자들은 단지 귀찮다는 이유로 인코딩을 기본값으로만 설정하여 사용하고 있는데 개발환경이 다양한 운영체제에서 개발해야 하거나 파일인코딩이 다른 지역에서 개발해야 할 경우 인코딩의 문제로 협업개발이 어려워 질 수 있다. 그러므로 조금은 귀찮더라도 인코딩은 설정해서 사용하는 방향으로 습관을 들이는게 좋을 듯 하다.
'문제점해결' 카테고리의 다른 글
form 1 + button 2 (0) | 2014.07.30 |
---|---|
java에서 alert...어찌함..ㅜㅠ (0) | 2014.07.30 |
svn에서 내려받은 파일 에러천지// (0) | 2014.07.29 |
The method getRemoteAddr() from the type ServletRequest refers to the missing type String (0) | 2014.07.29 |
error LNK2019: _Direct3DCreate9@4 외부 기호(참조 위치: "void __cdecl init(void)" (?init@@YAXXZ) 함수)에서 확인하지 못했습니다 (0) | 2014.07.29 |