API를 이용하는 유니코드와 ANSI 문자열간의 변환 방법 > WINAPI TIP

본문 바로가기
사이트 내 전체검색

WINAPI TIP

API를 이용하는 유니코드와 ANSI 문자열간의 변환 방법

페이지 정보

profile_image
작성자 이즈
댓글 0건 조회 592회 작성일 06-12-28 04:15

본문

API를 이용해서 유니코드와 ANSI 문자열간의 변환은 어떻게 수행합니까 ?

Visual C++에서 유니코드 문자열은 BSTR이란 타입으로 표시됩니다. 또 유니코드와 ANSI 문자열간의 변환을 위해서 윈도우 시스템에는 MultiByteToWideChar와 WideCharToMultiByte라는 API가 존재합니다. MFC에서의 BSTR 타입 변환방법이나 ATL로 하는 BSTR 타입 변환도 참고하시기 바랍니다.
# ANSI 문자열에서 유니코드로의 변환 방법

// sTime이란 ANSI 문자열을 bstr이란 이름의 유니코드(BSTR 타입) 변수로 변환
char sTime[] = "유니코드 변환 예제";
BSTR bstr;
// sTime을 유니코드로 변환하기에 앞서 먼저 그 길이를 알아야 한다.
int nLen = MultiByteToWideChar(CP_ACP, 0, sTime, lstrlen(sTime), NULL, NULL);
// 얻어낸 길이만큼 메모리를 할당한다.
bstr = SysAllocStringLen(NULL, nLen);
// 이제 변환을 수행한다.
MultiByteToWideChar(CP_ACP, 0, sTime, lstrlen(sTime), bstr, nLen);
        // 필요없어지면 제거한다.
        SysFreeString(bstr);

# 유니코드에서 ANSI 문자열로의 변환 방법

// newVal이란 BSTR 타입에 있는 유니코드 문자열을 sTime이라는 ANSI 문자열로 변환
char *sTime;
        int nLen = WideCharToMultiByte(CP_ACP, 0, newVal, -1, sTime, 0, NULL, NULL);
        sTime = malloc(nLen+1);
WideCharToMultiByte(CP_ACP, 0, newVal, -1, sTime, 128, NULL, NULL);
        // 필요없으면 메모리를 제거한다.
        free(sTime);

# 유니코드 문자열을 UTF-8으로 변환하기

    WideCharToMultiByte 함수를 호출할 때 첫 번째 인자로 CP_UTF8을 지정하면 된다. UTF-8은 유니코드의 인코딩 스킴 중의 하나로 쉽게 말하자면 문자열

댓글목록

등록된 댓글이 없습니다.

Total 65건 1 페이지

검색

회원로그인

회원가입

사이트 정보

컴퓨터 정보,윈도우즈,리눅스,포토샵,3ds
맥스,프로그래밍 강좌팁

접속자집계

오늘
196
어제
724
최대
5,287
전체
637,195
Copyright © www.qdata.co.kr All rights reserved.