개발자 공부하기

[문자 인코딩] 유니코드란 무엇인가?

스윗 앨리스 2021. 7. 14. 21:11

부제: 유니코드란 무엇인가?

컴퓨터는 이진수만 안다.

컴퓨터와 내가 문자를 입력하고 출력할 수 있도록 해주는게 바로 문자 코드다.

그리고 문자코드와 숫자를 매칭시킨 표를 문자표라고 한다.

대표적으로 아스키 코드표가 있다.

 

 

아스키 코드표 (ASCII Codes)

= American Standard Code for Information Interchange

알파벳, 숫자, 특수 문자에 고유의 숫자를 부여한 코드표로 7Bit 조합이라 128개의 문자를 표현한다.

아스키 코드표의 A가 American을 뜻한다고 한다. 즉, 영어권 국가를 위해서 만들어진 룰이란 것이다.

아스키 코드가 표현할 수 있는 문자가 제한적이다보니 한글이나 중국어 등을 표현할 수 없었다.

이에 다른 국가의 언어들도 문자표를 만들 필요가 생겼고, 여러 문자표들이 만들어지게 된다.

정신차리고 보니 표준룰이 너무 많아져 모든 언어를 표현할 수 있는 문자표가 필요하다고 판단되어 생겨난 것이!!

그것이 유니코드다.

유니코드(unicode)

세계 모든 언어와 기호에 코드값을 부여한 것이다.

저장 효율을 위해 언어에 따라 하나의 문자를 표현하는데 1~4byte를 사용한다.

그래서 가변 길이 인코딩 방식이라고 한다.

그러다보니 유니코드들의 나열에서 어느 정도의 크기를 읽어 하나의 문자로 인식해야하는지 혼란이 생겼다.

이에 다양한 인코딩 방식이 있는데, UTF-8, UTF-16, EUC-KR 등등이 있다.

 

UTF-8

8Bit Unicode Transform Format

유니코드를 인코딩하는 방식으로 8비트(1byte) 단위로 가변 인코딩 한다.

유니코드의 시작 바이트를 보고, 몇 바이트를 읽을 것인지를 결정하기로 약속한다.

 

즉,

0xxxxxxx 첫번째 바이트가 0으로 시작한다면 0 이외의 7비트를 ASCII로 인식한다.

110xxxxx 10xxxxxx 두번째 바이트까지 읽어서 하나의 문자로 표현

1110xxxx 10xxxxxx 10xxxxxx 세번째 바이트까지 읽어서 하나의 문자로 표현

11110xxx 10xxxxxx 10xxxxxx 10xxxxxx 네번째 바이트까지 읽어서 하나의 문자로 표현

 

EUC-KR

한글을 표현하기 위해 2byte(16bit)로 사용


결론

유니코드란 국제 표준 문자표이다.

인코딩은 몇 바이트를 읽을 것인지에 대한 약속이기 때문에 인코딩이 서로 다르면 문자가 깨져서 표시된다.

'개발자 공부하기' 카테고리의 다른 글

근거리 무선통신 (블루투스, 비콘, NFC)  (1) 2021.07.26