C,C++

싱글바이트, 멀티바이트, 유니코드

Dongjun_ 2019. 1. 22. 13:48

쓰고 보니 뭔가 잘못 되었다.


-싱글바이트

아스키코드를 통해 0x00 ~ 0x7F 범위의 문자 + 0x80 ~ 0xFF 범위의 확장 문자를 통해 유럽 언어를 표현한다.


- 멀티바이트

아스키코드를 통한 128개의 공간으로는 수많은 언어를 표현할 수가 없다. (알파벳 제외)

이 문제점을 해결하기 위한 방안이 멀티 바이트 코드다.


멀티 바이트 코드의 표현 방식은 아래와 같다.

1. 아스키 코드에 포함되는 문자는 1Byte로 표현.

2. 아스키 코드에 포함되지 않는 문자는 2Byte로 표현.

ex) 'abs절대값' 과 같은 문자열 -> 'abs' 3Byte + '절대값' 6Byte + NULL문자 1Byte 총 10Byte가 할당된다.


아스키 코드에 따라 할당되는 영역이 달라짐으로 효율적으로 보이긴 한다.

단, 일부의 함수와 코딩의 난해함 때문에 불편할 것.


- 유니코드

문자에 대한 정의와 숫자의 매칭이라고 한다.


멀티 바이트와 상반되어 모든 문자열을 2Byte로 할당한다.

로 알았다.... 제길


인코딩 하는 방식에 따라 가변적으로 변경 된다고 한다.

(참고, UTF-8 / UTF-16 / UTF-32 / UTF-KR 등은 유니코드가 아니라 유니코드를 인코딩 하는 방식이다.)

자세한 내용 : https://ko.wikipedia.org/wiki/UTF-8

(UTF-8 : 1~4Byte / UTF-16 : 2~4Byte / UTF-32 : 4Byte)


// 포기... 이건 그냥 생각나는 대로 찾아보는게 이롭다                                        //

// http://blog.naver.com/PostView.nhn?blogId=james2021&logNo=30085946509    //

반응형

'C,C++' 카테고리의 다른 글

[C++]warning C4482 : 비표준 확장 에 대해서  (0) 2019.01.31
[C++]type casting에 관하여  (0) 2019.01.31
Segment 란  (0) 2019.01.23
메모리 영역(Heap, Stack, Data, Code)  (0) 2019.01.23
동적(Dynamic) vs 정적(Static)  (0) 2019.01.22