MultiByte 2

멀티바이트(Multibyte), 유니코드(Unicode), ANSI 그리고 ASCII

먼저 "유니코드와 멀티바이트를 비교하라" 는 질문을 받았고 간단하게 대답을 하려면 멀티 바이트는 문자를 다양한 바이트로 표현하는 인코딩 방식 유니코드는 세계 모든 문자를 2바이트 길이의 바이너리(=코드)와 매핑해놓은 코드표(=문자열 셋)이다(예를 들어 '가' 라는 문자를 U+AC00 이런식의 코드에 매핑) 이렇게 대답하면 좋을 것 같다. 앞서 유니코드와 멀티바이트를 비교 하려고 하는데 엄밀히 이야기하면 비교 대상이 잘못됐다. 명확한 비교는 WBCS과 MBCS(흔히 말하는 멀티바이트)를 비교해야한다(유니코드가 WBCS의 형태라서 이렇게 통상적으로 비교하는 듯 하다). 먼저 문자열 셋(Chracter Set)과 인코딩에 대한 이해가 필요하다. 문자와 바이너리를 매핑시켜주는 표를 문자열 셋(Character ..

공부/그 외 2022.09.23

인코딩 변환 함수(MultiByteToWideChar(), WideCharToMultiByte())

출처에 표시해놓은 블로그에서 유니코드멀티바이트 변환 함수를 잘 정리해놓아서 출처를 밝히고 여기 옮긴다. MultiByteToWideChar()함수와 WideCharToMuliByte()함수를 사용해서 인코딩을 변환해 주는 것도 가능합니다. 이 두함수는 윈도우에서만 지원합니다. 따라서 OS 디펜던시가 없는 라이브러라 같은 것을 개발하신다면 이 두함수는 사용하실 수 없긴 하지만 많은 윈도우 개발자들이 사랑하는 함수죠. 먼저 MBCS를 UTF-16으로 바꾸는 함수입니다. int MultiByteToWideChar( UINT CodePage, // 원본 스트링의 현재 인코딩 상태 DWORD dwFlags, // 0을 쓰면 된다. LPCSTR lpMultiByteStr, // 변환하려는 문자열 int cbMult..

공부/WINAPI 2021.12.10