문자 집합

컴퓨터가 인식하고 표현할 수 있는 문자의 모음을 말한다.

컴퓨터는 문자집합에 있는 문자를 이해하고,

문자집합에 없는 문자는 이해하지 못한다.

당연히 문자집합에 있는 문자를 바로 이해하지는 못하고 기계어로 변환해주어야 한다.

 

문자 인코딩

문자 집합에 속해 있는 문자를 0과 1로 변환하는 과정을 말한다.

 

문자 디코딩

0과 1로 이루어진 문자 코드를 사람이 이해할 수 있는 문자로 변환하는 과정을 말한다.

 

아스키 코드

초창기 문자 집합 중 하나로 영어 알파벳, 아라비아 숫자, 일부 특수 문자를 포함한다.

각각 7비트로 표현해 총 128개의 문자를 표현할 수 있다.

* 실제로는 8비트를 사용한다. 8비트 중 1비트는 패리티 비트라고 해서 오류 검출을 위해 사용하는 비트로

실질적으로 사용되는 비트는 7비트다.

아스키 코드

문자 인코딩에서 글자에 부여된 고유한 값을 코드 포인트라 한다.

예 ) 아스키 문자 A의 코드 포인트는 65

 

유니코드

모든 나라 언어의 문자 집합이다.

유니코드는 글자에 부여된 값 자체를 인코딩 된 값으로 삼지 않는다.

글자에 부여된 값 자체를 다양한 방법으로 인코딩 하여 사용한다.

UTF-8, UTF-16, UTF-32 등 ( 유니코드 문자에 부여된 값을 인코딩 하는 방식 )

 

UTF - 8

 

위 표를 살펴보자.

유니코드에 부여된 값의 범위가 0 부터 007F 까지는 1바이트로 표현한다.

유니코드에 부여된 값의 범위가 0080 부터 07FF 까지는 2바이트로 표현한다.

유니코드에 부여된 값의 범위가 0800 부터 FFFF 까지는 3바이트로 표현한다.

유니코드에 부여된 값의 범위가 10000 부터 10FFFF 까지는 4바이트로 표현한다.

 

예를 들어 '한글' 이라는 글자는 몇 바이트로 표현되는지 알아보자.

유니코드에 따르면 '한'은 'D55C' '글'은 'AE00' 이다.

위 표를 보면 '한' 과 '글'은 둘다 0800 ~ FFFF 사이에 속하는 것을 확인할 수 있고

따라서 '한'과 '글'을 UTF-8로 인코딩 하면 각각 3바이트로 표현될 것이라고 예상할 수 있다.

한 ( D55C) : 1101 0101 0101 1100 -> UTF8 인코딩 11101101 10010101 10011100

글 ( AE00 ) : 1010 1110 0000 0000 -> UTF8 인코딩 11101010 10111000 10000000

'CS' 카테고리의 다른 글

[CS] 디자인 패턴  (0) 2024.11.11
[CS] IP 주소의 체계, 사설망, 공인망  (0) 2024.10.07
[CS] 랜카드, MAC 주소  (0) 2024.10.02
[CS] 웹서버와 게임서버  (0) 2024.08.25

+ Recent posts