조회 수 63198 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

+ - Up Down Comment Print
?

단축키

Prev이전 문서

Next다음 문서

+ - Up Down Comment Print

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

 

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

Visual C++에서 유니코드 문자열은 BSTR이란 타입으로 표시됩니다. 또 유니코드와 ANSI 문자열간의 변환을 위해서 윈도우 시스템에는 MultiByteToWideCharWideCharToMultiByte라는 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은 유니코드의 인코딩 스킴 중의 하나로 쉽게 말하자면 문자열 스트림에서 0을 빼고
     표현하는 방법이라고 볼 수 있다

  • Dreamy의 코드 스크랩

    내가 모으고 내가 보는

    List of Articles
    번호 분류 제목 날짜 조회 수 추천 수
    31 MFC 현재디렉토리의 파일리스트들을 알아오는 클래스 CFindFile 2008.05.07 62561 0
    30 MFC 현재 실행된 어플리케이션의 디렉토리 적용하기 2008.05.07 40041 0
    29 MFC 프로젝트 Resource에서 파일로 저장하는 방법 2010.11.01 34740 0
    28 MFC 폴더가 존재하는 지 확인하고, 없으면 만드는 함수 2010.02.01 58478 0
    27 MFC 파일 읽기 전용 해제 및 설정 2009.09.11 54276 0
    26 MFC 커맨드 창 속성 제어 2009.09.01 37962 0
    25 MFC 시작프로그램 레지스트리에 등록/해제 함수 2006.04.14 45753 0
    24 MFC 시스템 출력 리디렉션 - 도스 커맨드 결과 받아오기 file 2007.08.14 52957 0
    23 MFC 비트맵 비교 2009.03.23 40881 0
    22 MFC 리사이징 다이얼로그(Resizing dialog) 2008.03.24 46692 0
    21 MFC 레지스트리 쓰기, 읽기 함수 정리 2011.07.26 31110 0
    20 MFC 도스 커맨드 실행하기 1 2009.09.01 49121 0
    19 MFC 다이얼로그 기반 APP에서 Edit에 엔터키 먹게 하기 2006.04.14 42166 0
    18 MFC 노트패드를 이용한 덤프 file 2006.05.19 33554 0
    17 MFC _CrtDumpMemoryLeaks() 을 이용한 메모리 누수 탐지법 2 2010.11.02 44275 0
    목록
    Board Pagination ‹ Prev 1 2 3 Next ›
    / 3

    나눔글꼴 설치 안내


    이 PC에는 나눔글꼴이 설치되어 있지 않습니다.

    이 사이트를 나눔글꼴로 보기 위해서는
    나눔글꼴을 설치해야 합니다.

    설치 취소

    Designed by sketchbooks.co.kr / sketchbook5 board skin

    Sketchbook5, 스케치북5

    Sketchbook5, 스케치북5

    Sketchbook5, 스케치북5

    Sketchbook5, 스케치북5