Unicode UTF-8
Unicode UTF-8
Unicode
- 전 세계의 문자를 다루기 위해 설계된 표준 문자 처리 방식
- 과거에는 문자를 표현함에 1byte의 공간만 사용
- ASCII 코드를 제외하고 남은 공간에 자국 문자를 할당
- 이 과정에서 국가간 통신에 불일치 발생
- 총 4byte의 공간을 사용해 문자를 표현
- 지구상의 대부분의 문자를 표현가능
- 아직 포함되지 않은 문자들도 유니코드로 표현하기 위해 지속적으로 업데이트 중
- 코드를
U+(16진수숫자)
로 표시 - 현대 한국어의 모든 완성형 글자
11,172
자가 포함됨
Unicode Encoding
- 유니코드는 각 글자에
숫자
를 배당하는 방식 - 유니코드 인코딩은 해당
숫자
를 저장하는 방식을 의미- 유니코드는 문자 하나가 4 byte이므로 그대로 사용 시 용량이 아주 커짐
- 따라서 문자별로 다른 길이로 인코딩하는
가변 길이 인코딩
방식 사용 - 자주 쓰는 문자는 더 적은 byte로, 자주 안 쓰이는 문자는 더 많은 byte로 표현
- 대표적인 것이
UTF-8
UTF-16
, UTF-32
, UCS-2
등의 다른 인코딩 방식도 존재
UTF-8
- 가장 많이 사용되는 가변 길이 인코딩
- 최대 6byte 까지 표현 가능하지만 다른 인코딩과의 호환을 위해 4byte 까지만 사용
- 세계적으로 가장 많이 사용되고, 단일 인코딩 방식이라는 점 등 압도적인 장점 다수 보유
- ASCII code의 0 ~ 127은 UTF-8에서도 완벽히 동일
- 유니코드의 숫자의 크기별로 UTF-8에서 사용하는 byte는 다음과 같음
- 7비트 이내: 1byte (ASCII code)
- 8 ~ 11 비트: 2byte
- 12 ~ 16비트: 3byte
- 17 ~ 21비트: 4byte
References
- https://namu.wiki/w/%EC%9C%A0%EB%8B%88%EC%BD%94%EB%93%9C
- https://namu.wiki/w/UTF-8