본문 바로가기

노력을 이기는 재능은 없고
노력을 외면하는 결과도 없다.
- 이창호 9단

D E V E L O P M E N T/JAVA

[JAVA] 인코딩(Encoding)이란? 인코딩 개념과 종류(ASCII, ISO/IEC, EUC-KR, MS949, UTF-8)

  Junesker   2022. 9. 8.
반응형

우리가 이클립스를 설정하거나 소프트웨어 개발을 하거나 데이터를 전송하거나 등등 여러가지 행위에서 인코딩이라는 개념과 사용이 생각보다 많다. 그렇지만 정작 우리가 사용하면서 정확한 개념을 이해하거나 정의를 알고 있는 건 한정적이고 한계가 많다. 그래서 오늘은 인코딩에 대해서 알아보고 인코딩 방식의 종류에 따른 개념과 특징이 무엇인지 알아보기로 했다.

 

 

 

 

 

인코딩(Encoding)이란?

파일에 저장된 정보의 형태를 다른 것으로 변경하는 것을 말한다. 부호화(符號化)라고도 한다

 

 

 

 

 

정보의 형태를 다른 것으로 변경하는 것을 인코딩이라고 하는데, 우리가 사용하는 정보를 나타내는 문자들의 형태 또한 나타내는 방식이 있다. 그 형태에 맞는 인코딩 설정으로 우리가 보고자 하는 형태를 사용하면 된다. 그렇다면 그런 형태는 무엇이 있을까?

 

 

 

 

 

문자 인코딩(Encoding)이란?

사용자가 입력한 문자 기호들을 컴퓨터가 이용할 수 있는 신호로 만드는 것

 

 

 

 

 

ASCII(American Standard Code for  Information Interchange)

 

- 미국 국립 표준 협회(ANSI, American National Standards Institute)에서 표준화한 정보교환용 7비트 부호체계이다.

- 영문 알파벳을 사용하는 대표적인 문자 인코딩

- 컴퓨터와 통신 장비를 비롯한 문자를 사용하는 많은 장치에서 사용되며, 대부분의 문자 인코딩이 아스키에 기초를 둠

- 33개의 출력 불가능한 제어 문자들과 공백을 비롯한 95개의 출력 가능한 문자들로 총 128개

- 2Byte 이상의 다양한 코드들을 표현할 수 없기 때문에 현대에는 유니코드(Unicode)를 더 많이 사용

 

ISO/IEC 646

- ASCII 코드에서 사용했던 7비트 문자코드를 규정하는 국제 표준화 기구(ISO) 표준이며, 이것을 바탕으로 각 나라 언어판의 문자 코드가 규정

- 미국의 규격인 ASCII를 국제화한 체제

- ASCII에는 있는데, ISO/IEC 646 INV에는 없는 문자들이 상당히 자주 쓰이면서 삼중자를 추가하게 되는데, 이로 인해 7비트 영역의 변경이 필요하지 않은 8비트 문자 집한인 ISO/IEC 8859가 등장하면서 ISO/IEC 646은 역사속으로 사라짐

 

ISO/IEC 8859

- 8비트 문자 인코딩을 위한 ISO 및 IEC 공동 표준 시리즈

- 일련의 표준은 ISO/IEC 8859-1, ISO/IEC 8859-2 등과 같이 번호가 매겨진 부분으로 구성

- 폐기된 ISO/IEC 8859-12를 제외하고 15개의 부분이 있음

- 95개의 인쇄 가능한 ASCII 문자의 비트 패턴은 현대 영어로 정보를 교환하기에 충분하지만 라틴 알파벳을 사용하는 대부분의 다른 언어에는 ASCII에서 다루지 않는 추가 기호가 필요, 그래서 ISO/IEC 8859는 8비트 중 8번째 비트를 활용하여 다른 96개의 인쇄 가능한 문자에 대한 위치를 허용함으로써 문제 해결

 

ISO 10646

- UCS(Universal Character Set: 국제 문자 세트)를 정의하고 있음

- 1991년부터 유니코드 컨소시엄에서는 유니코드 표준과 ISO/IEC 10646을 발전시키기 위해 ISO와 공동 작업을 진행

- UCS는 110만개 이상의 코드가 있지만, 일반적으로 첫 65536개(BMP, Basic Multilingual Plane, 기본 다국어 평면)만이 사용된다.

- 공식적으로 31비트 문자셋을 정의

 

EUC-KR

- EUC는 Extend Unix Code의 약자로 영어를 제외한 문자를 표현하기 위한 확장부호를 의미, 그 중 EUC-KR은 한글 표현을 위한 문자 인코딩 방식

- 한글과 한국에서 통용되는 한자, 그리고 영문을 표현할 수 있음

- 한글 한자 한자를 2Byte로 처리

- ASCII문자와 충돌하지 않고 ASCII 문자를 다루는 대부분의 프로그램 및 시스템에 문제없이 사용됨

- 모든 현대의 한글 음절을 표현할 수 없음

- 다른 문자 세트의 문자를 표현할 수 없음

- 국제적으로 교환될 수 있는 문서 및 여러 나라 언어를 처리하는 시스템 및 프로그램의 개발, 확장이 어려움

 

MS 949

- Microsoft-Window의 기본 코드 페이지로, 한글 인코딩의 한 종류이며 EUC-KR의 확장형

- '통합 완성형', '확장 완성형' 이라고도 함

- Microsoft가 개발했기 때문에 MS949, Windows-949, CP949 등으로도 불림

 

UTF-8

- 유니코드를 위한 가변 길이 문자 인코딩 방식 중 하나

- 전세계 모든 문자를 동시에 표현 할 수 있도록 만들어진 규약

- UTF-8을 사용하면 한글을 모르는 국가에서도 한글을 완벽하게 표현할 수 있음

- UTF 는 "Universal Coded Character Set + Transformaion Format + 8bit"의 약자

- 코드 페이지는 65001로, UTF-8로 표현 가능한 길이는 최대 6Byte 이지만 다른 인코딩과의 호환을 위해 4Byte 까지만 사용한다.

 

 

 

 

 

@Junesker


 

반응형

댓글