[VC++] Encoding 변환 하기

2006/10/22 02:11

WIN32 API 이용하는 법. (WIN32 UniCode는 UTF-16LE), 단, Win9x/WinMe에서는 안됩니다.


A) ANSI 를 UniCode (UTF-8) 로 변환


1) ANSI -> UniCode (UTF-16LE)

   ::MultiByteToWideChar(CP_ACP, ...);

2) UniCode (UTF-16LE) -> UniCode (UTF-8)

   ::WideCharToMultiByte(CP_UTF8, ...);



B) UniCode (UTF-16LE) 를 ANSI 로 변환


1) ::WideCharToMultiByte(CP_ACP, ...);



C) UniCode (UTF-8) 를 ANSI 로 변환


1) UniCode(UTF-8) -> UniCode (UTF-16LE)

   ::MultiByteToWideChar(CP_UTF8, ...);

2) UniCode (UTF-16LE) -> ANSI

   ::WideCharToMultiByte(CP_ACP, ...);


UTF-8 관련 정보 사이트

http://www.unicode.org

http://www.cl.cam.ac.uk/~mgk25/unicode.html

UniCode 컨버터

http://www.unicode.org/Public/PROGRAMS/CVTUTF/

UTF-8 인코딩 디코딩 관련 소스

http://www.codeproject.com/file/textfiledocument.asp

http://www.codeproject.com/string/UTF8.asp