티끌

유니코드와 인코딩 차이

유니코드란? 전 세계의 모든 문자를 다루도록 설계된 표준 문자 전산 처리 방식.

전 세계의 모든 문자를 할당하기 위해 넉넉하게 2~3바이트를 할당. 그러나 영어는 1바이트 내에서 표현이 가능하기에 쓸데없는 리소스 낭비가 발생함. 여기서 가변길이 인코딩방식 UTF-8이 등장함. UTF-8 인코딩은 유니코드에 기반한 인코딩 방식 중 하나임.

대한민국의 한국어 컴퓨터 환경에서는 유니코드가 도입되기 전에는 KS C 5601(완성형, 이후 KS X 1001로 개칭됨)이라는 코드와 이에 기반한 EUC-KR 인코딩을 사용.

현재도 메일 전송에 EUC-KR 혹은 KS X 1001 이 사용된다.마소에서 만든 CP949도 있다.

한국어판 Microsoft Windows의 기본 코드 페이지로, 한글 인코딩의 한 종류이며 EUC-KR의 확장형이다. '통합 완성형'이나 '확장 완성형'이라고도 한다. 마이크로소프트가 개발했기 때문에 MS949, Windows-949 등으로도 불린다.

CP949, EUC-KR은 유니코드가 아님.

유니코드는 U+FFFF혹은 \uFFFF 와 같이 표현된다. 유니코드와 유니코드 인코딩은 항상 헷갈리는 주제.

 

유니코드와 유니코드 인코딩을 가장 쉽게 설명하는 방법은 유니코드각 글자에 숫자를 배당하는 방식, 규격이고 인코딩유니코드 숫자를 저장하는 방식, 표현이라고 보면 된다.

 

예를 들어 A(65)를 보자. A라는 글자를 숫자 65에 배당하는 것(65를 읽으면 A라고 표현하라는 것)이 유니코드의 개념이다. 이 65라는 숫자를 2진수로 저장할 때, 8자릿수로 표현해서 0100 0001 이라고 쓰거나, 혹은 규모를 키우기 위해 16자릿수로 표현해서 0000 0000 0100 0001 이라고 쓰거나, 혹은 구버전 호환성을 높이거나 처리속도를 빠르게 하기 위해 0001 0100 (8자리)와 0001 0100 0000 0000 (16자리) 처럼 거꾸로 쓰거나, 헷갈리지 말라고 110(+2) 0100 0001, 11110(+4) 0000 0000 0100 0001 처럼 가변정보를 넣어 쓰는 등, 이런 논리와 방식을 결정하는 것이 인코딩의 종류

=> 정리하면, 어떤 문자를 숫자에 Mapping 하는 방식 혹은 규격을 유니코드. 그 Mapping 된 숫자 데이터를 2진수로 저장할때, 저장하는 bit 크기 및 방식 등을 결정하는것이 인코딩.

인코딩의 종류에는 UTF-7, UTF-8, UTF-16, UTF-32, UTF-16BE, UTF-16LE, UTF-32BE, UTF-32LE 가 있다.

 

 

* 나무위키 참조

https://namu.wiki/w/%EC%9C%A0%EB%8B%88%EC%BD%94%EB%93%9C

'티끌' 카테고리의 다른 글

Test Driven Development(TDD)  (0) 2021.07.14
UTC  (0) 2021.07.14
[다산의 마지막 습관] 잃어버린 나를 찾는다는 것  (0) 2021.02.01
1/20 메모  (0) 2021.01.20
01/19 메모  (0) 2021.01.19