컴퓨터에서 인간이 사용하는 문자를 표현하는 수단은 여러가지가 있습니다.
이 포스팅에서는 그 중에서 몇 가지를 알려드리고자 합니다.
(1) ASCII
첫 번째로 ASCII입니다.
가장 큰 특징으로는 영어만 고려한다는 점입니다.
이 특징으로 인해 7bit만 사용하게 되는데, 이는 0~127까지의 경우만 표현됩니다.
(2) ANSI
두 번째는 ANSI입니다.
가장 큰 특징으로는 ASCII + ANSI값 입니다.
ASCII코드의 한계인 영어만 표현한다는 점을 극복하고자 고유값인 ANSI값을 더하여 표현의 범위를 늘릴 수 있습니다.
예를 들어, 한국어는 CP949의 ANSI값을 갖습니다.
그러나 ANSI의 가장 큰 문제점은 똑같은 ANSI값이 똑같은 문자가 아닐 확률이 존재한다는 것입니다.
만일 한국->중국으로 '안녕'을 송신하면, 중국에서는 '안녕'의 ANSI값이 수신되고
중국의 인터넷 환경에서는 이 ANSI값이 다르게 해석될 수 있다는 것입니다.
(3) 유니코드
이러한 ANSI의 문제점을 대체하기 위한 것이 바로 유니코드입니다.
가장 큰 특징으로는
동일한 번호 == 동일한 문자 == 동일한 유니코드
라는 점입니다.
그렇기에 문자와 관련된 설정을 다룰 때는 유니코드 방식이 매우 안전합니다.
유니코드는 인코딩 방식에서도 차이가 있는데, 지금부터 한번 알아보겠습니다.
(4) 유니코드 - MBCS(Multi Byte Character Set)
익숙한 말로 utf-8로 말할 수 있는 인코딩 방식입니다.
다른 말로 가변 길이 인코딩이라고도 부를 수 있습니다.
특징으로는
(1) 영어는 반드시 1byte
(2) 그 외의 언어는 3byte
로 사용됩니다.
따라서 영어만 사용하는 인터넷 환경에서 효율적입니다.
(5) 유니코드 - WBCS(Wide Byte Character Set)
익숙한 말로 utf-16이라고 말할 수 있는 인코딩 방식입니다.
다른 말로 고정 길이 인코딩이라고도 부를 수 있습니다.
특징으로는
(1) 거의 모든 언어가 2byte
(2) 특수한 경우에만 4byte
로 사용됩니다.
따라서 다양한 언어를 사용하는 인터넷 환경에서 효율적입니다.
이제 각각의 문자를 표현하는 방법을 코드로 알아보겠습니다.
-ANSI
-UTF-8
'C++' 카테고리의 다른 글
람다 (0) | 2024.03.18 |
---|---|
함수 객체 (0) | 2024.03.11 |
함수 포인터 (0) | 2024.03.11 |
C스타일 문자열과 C++스타일 문자열 (0) | 2024.02.26 |
algorithm 헤더 파일 (0) | 2024.02.26 |