메뉴 건너뛰기

조회 수 2382 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부

문자집합(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번의 경우와 같이 특정 플러그인을 설치한 경우 해당 플러그인에서 인코딩을 별도로 설정해줘야 하는 경우가 있다. 현재 파일 인코딩이 어떻게 설정되어 있는지 확인하고 이클립스에서 설정해둬야 파일에서 한글이 깨지지 않고 정상동작할 것이다.


결론:

어떤 개발자들은 단지 귀찮다는 이유로 인코딩을 기본값으로만 설정하여 사용하고 있는데 개발환경이 다양한 운영체제에서 개발해야 하거나 파일인코딩이 다른 지역에서 개발해야 할 경우 인코딩의 문제로 협업개발이 어려워 질 수 있다. 그러므로 조금은 귀찮더라도 인코딩은 설정해서 사용하는 방향으로 습관을 들이는게 좋을 듯 하다.




  1. 전자정부 표준프레임워크 파일업로드용량설정

    Date2018.12.06 Views1961
    Read More
  2. 이클립스에서 인코딩 설정

    Date2018.06.21 Views2382
    Read More
  3. Spring Security의 동작 방법

    Date2018.06.21 Views4330
    Read More
  4. 이클립스 파일 찾기 & 문자열 검색

    Date2018.06.21 Views2460
    Read More
  5. CKEditor 사용 및 파일 업로드 적용

    Date2018.06.12 Views3236
    Read More
  6. spring ckeditor 파일업로드 예제 (file upload)

    Date2018.06.12 Views4571
    Read More
  7. 스프링 CKEditor 적용 - 에디터

    Date2018.06.12 Views5636
    Read More
  8. 전자정부프레임워크 사용 중 중복 저장 방지 (새로고침 혹은 뒤로가기시)

    Date2018.06.12 Views3097
    Read More
  9. "알 수 없는 오류가 발생하였습니다." 라는 에러 메시지가 발생했을 때 대처법

    Date2018.06.12 Views4258
    Read More
  10. 예제 따라하기(1) - 기본 서블릿 구현

    Date2018.06.05 Views2971
    Read More
  11. 첫 실행 URL 변경

    Date2018.06.05 Views2775
    Read More
  12. 전자정부프레임워크 구조 파악하기

    Date2018.06.02 Views4269
    Read More
  13. 전자정부 프레임워크(eGovframe) 동적 웹프로젝트 시작하기(2)

    Date2017.09.12 Views4208
    Read More
  14. 전자정부 프레임워크(egov framework) 설치하기(1)

    Date2017.09.12 Views5362
    Read More
  15. java.lang.NoClassDefFoundError: org/springframework/dao/support/PersistenceExceptionTranslator

    Date2016.09.21 Views4224
    Read More
  16. HTMLTagFilter ?

    Date2016.09.21 Views7821
    Read More
  17. 로그인 체크 인터셉터 사용 (AuthenticInterceptor)

    Date2016.09.21 Views6740
    Read More
  18. getFileNames() 메소드를 이용한 파일 업로드 기능 구현하기

    Date2016.09.21 Views5899
    Read More
  19. getFileMap() 메소드를 이용한 파일 업로드 기능 구현하기

    Date2016.09.21 Views6250
    Read More
  20. message 사용을 위한 설정

    Date2016.09.21 Views6607
    Read More
Board Pagination Prev 1 2 3 Next
/ 3

하단 정보를 입력할 수 있습니다

© k2s0o1d4e0s2i1g5n. All Rights Reserved