C#

UTF-8과 UTF-16

monstro 2025. 1. 6. 11:23
728x90
반응형

이번 포스트에서는 컴퓨터에서 언어를 다루는 방식을 알아보도록 하겠습니다.

 

1) ASCII 코드

오직 영어만을 위해 사용가능한 방식인 ASCII 코드입니다.

문자 하나를 255 크기의 1바이트(=8비트)로 표현합니다.

예를 들어 대문자 A는 10진수로는 65, 16진수로는 0x41로 표현합니다.

 

2) UNICODE

ASCII 코드는 영어만을 표현할 수 있으므로 이를 위해 만들어진 UNICODE 입니다.

영어 외의 다른 언어를 표현하기 위해 3바이트(=24비트)로 표현합니다.

하지만 유니코드의 경우, 치명적인 단점이 존재하는데 바로 모든 문자들에 대해 

3바이트라는 무시하지 못할 크기의 용량을 사용한다는 것입니다.

따라서 이를 개선하고자 등장한 것이 바로 UTF-8UTF-16입니다.

 

3) UTF-8

UTF-8의 경우 영어를 사용할 때1바이트만 사용하지만

한글과 같은 다른 언어의 경우 3바이트를 사용합니다.

따라서 영어를 자주 사용하는 환경에서 유리합니다.

 

4) UTF-16

UTF-16의 경우 보편적으로 사용하는 언어들에 대해서는 2바이트를 사용하지만,

일반적으로 사용하지 않는 특수한 경우에 사용하는 언어들에는 4바이트를 사용합니다.
C#은 기본적으로 UTF-8이 아닌 UTF-16을 사용합니다.

따라서 문자 하나를 나타내는 character 형

C++이 1바이트인 것과는 다르게, 2바이트의 크기를 갖고 있습니다.

 

728x90
반응형

'C#' 카테고리의 다른 글

직렬화(Serialization) 4  (0) 2025.01.06
직렬화(Serialization) 3  (0) 2025.01.06
직렬화(Serialization) 2  (0) 2025.01.01
직렬화(Serialization) 1  (1) 2025.01.01
PacketSession  (0) 2024.12.31