728x90
반응형
이번 포스트에서는 컴퓨터에서 언어를 다루는 방식을 알아보도록 하겠습니다.
1) ASCII 코드
오직 영어만을 위해 사용가능한 방식인 ASCII 코드입니다.
문자 하나를 255 크기의 1바이트(=8비트)로 표현합니다.
예를 들어 대문자 A는 10진수로는 65, 16진수로는 0x41로 표현합니다.
2) UNICODE
ASCII 코드는 영어만을 표현할 수 있으므로 이를 위해 만들어진 UNICODE 입니다.
영어 외의 다른 언어를 표현하기 위해 3바이트(=24비트)로 표현합니다.
하지만 유니코드의 경우, 치명적인 단점이 존재하는데 바로 모든 문자들에 대해
3바이트라는 무시하지 못할 크기의 용량을 사용한다는 것입니다.
따라서 이를 개선하고자 등장한 것이 바로 UTF-8과 UTF-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 |