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.Unicode
는UTF-16
을 의미한다.
UTF-8
-
가장 많이 사용되는 가변 길이 인코딩
-
0 ~ 127은 아스키 코드에 호환된다.
-
문자의 종류에 따라서 1 ~ 4바이트까지 다르게 인코딩된다.
-
영문, 숫자는 1바이트, 한글은 3바이트로 인코딩된다.
-
영문, 숫자를 위주로 인코딩할 경우
UTF-16
에 비해 크기 면에서 이득을 얻을 수 있다.