Posts 문자 인코딩 방식들 간단 메모
Post
Cancel

문자 인코딩 방식들 간단 메모

Encoding


  • 문자(char)를 코드(byte[])로 표현하는 것

  • 반의어 : Decoding


ASCII


  • American Standard Code for Information Interchange, 미국 정보 교환 표준 부호

  • 영미 문화권의 기본적인 문자들을 코드값에 대응시키기 위해 고안되었다.

  • 영어, 숫자, 일반적인 특수 문자들을 0 ~ 127 값으로 표현한다.


Unicode


  • 전 세계의 문자를 코드값으로 표현할 수 있도록 고안된 산업 표준

  • 최대 21비트에 전 세계의 문자를 표현한다.

  • 대부분의 언어들은 2바이트 이내에 표현된다.(영어, 숫자, 한국어, 일본어, 한자, …)

  • UCS-2, UCS-4, UTF-8, UTF-16, UTF-32 등 다양한 인코딩 방식이 존재한다.

  • UTF : Unicode Transformation Format


UTF-32


  • 유니코드에 존재하는 모든 문자를 각각 4바이트의 고정 길이로 인코딩한다.

  • 용량이 너무 커서 대부분 사용하지 않는다.


UTF-16


  • 너무 많은 용량을 필요로 하는 UTF-32의 문제를 해결하기 위해 고안된 가변 길이 인코딩

  • 2바이트 이내에서 표현할 수 있는 문자는 2바이트로 표현된다.

  • 2바이트 범위 밖의 문자는 4바이트로 표현된다.

  • C#의 기본 인코딩 방식. Encoding.UnicodeUTF-16을 의미한다.


UTF-8


  • 가장 많이 사용되는 가변 길이 인코딩

  • 0 ~ 127은 아스키 코드에 호환된다.

  • 문자의 종류에 따라서 1 ~ 4바이트까지 다르게 인코딩된다.

  • 영문, 숫자는 1바이트, 한글은 3바이트로 인코딩된다.

  • 영문, 숫자를 위주로 인코딩할 경우 UTF-16에 비해 크기 면에서 이득을 얻을 수 있다.


References


This post is licensed under CC BY 4.0 by the author.