본문 바로가기
Etc

EUC-KR, UTF-8, 유니코드

by 브루노W 2023. 3. 14.

EUC-KR
완성형 방식(완성된 단어가 있어야 표현 가능)
ex) 인코딩


UTF-8
조합형 방식(모음, 자음으로 나누어져서 조합을 통해 표현)
ex) ㅇㅣㄴㅋㅗㄷㅣㅇ

 

EUC-KR, UTF-8에 대해서 위와 같이 단순하게만 알고 있었는데 얼마 전 관련 게시글을 보고 다시 정리하려고 글을 작성한다.

 


1. 인코딩과 디코딩
인코딩
문자를 컴퓨터에 저장하기 위해 숫자(일반적으로 2진수)로 변환하는 것
ex) 가 → 10110000 10100001

디코딩
반대로 인코딩한 숫자를 문자로 다시 변환하는 것
ex) 10110000 10100001 → 가


2. EUC-KR
EUC-KR은 한글을 2byte로 변환하는 방법이다. 문자마다 아래와 같이 2byte 코드 값이 할당되어 있다.



"가"에 해당 하는 행과 열 번호를 조합하면 "B0A1" 으로 EUC-KR 로 "가" 문자를 인코딩할 경우 숫자 값은 "B0A1"으로 전환된다.
("B0A1"은 16진수로 실제 컴퓨터에 저장할 때는 2진수 "10110000 10100001"으로 저장된다.)

EUC-KR은 코드표에 한글 뿐 아니라 특수 기호, 영문, 숫자, 한문 등이 정의되어 있다.
이 외에 다른 문자의 언어는 인코딩할 수가 없다. (매핑된 숫자 값이 없기 때문에...)

 


3. UTF-8 (유니코드)
서로 다른 언어를 사용하는 컴퓨터가 문제 없이 통신할 수 있도록 전 세계의 여러 언어를 일관되게 표현할 수 있는 하나의 체계를 목표로 만들어진게 유니코드이다.

유니코드는 다양한 문자에 순서대로 번호를 붙여놓고 구분할 수 있게 되어 있다.


"가"에 해당 하는 번호는 "AC00"이며 이를 일반적으로 코드포인트(Code Point)라고 한다.

"U+AC00"으로 표현하여 앞에 "U+"가 있으면 유니코드라고 보면 된다.

이 유니코드를 인코딩하는 방법에는 UTF-8, UTF-16, UTF-32 등 몇 가지 방법이 있는데 가장 보편적으로 사용되는 방법이 UTF-8이다.



"가"의 코드포인트는 "U+AC00"이고 , 2진수로 변환하면 10101100 00000000 이다.

U+AC00은 위 표에서 U+0800 ~ U+FFFF 범위에 있으니 위 인코딩 방법에 따라 1110xxxx 10xxxxxx 10xxxxxx의 x 자리에 순서대로 2진수 값을 채워 넣으면 된다.

11111010 10110000 10000000 (이를 16진수로 변환하면 EA B0 80)

이와 같은 방식으로 "가"의 인코딩 값이 3byte 크기의 EA B0 80이 되는 것이다.

'Etc' 카테고리의 다른 글

iOS 앱 배포 순서  (0) 2024.07.25
네이버 사이트 연관 채널 등록 및 확인 방법  (0) 2023.04.10