UNICODE串转换成char类型串的四种方法[转]

UNICODE串转换成char类型串的四种方法[转]

1. 调用 WideCharToMultiByte() API

int  WideCharToMultiByte (
    UINT    CodePage,                
// 1 Unicode编码的字符页,Unicode编码有字符页的概念,比如gb2312/936,big5/950等
    DWORD   dwFlags,                 // 2 如何处理复合unicode字符,详细查google
    LPCWSTR lpWideCharStr,         // 3 待转换的unicode串
     int      cchWideChar,                 // 4 表示参数3的长度  传递-1表示以0x00结尾
    LPSTR   lpMultiByteStr,             // 5 接受转换后的串的字符缓冲
     int      cbMultiByte,                     // 6 表示参数5lpMutiByteStr的字节大小 通常sizeof一下
    LPCSTR  lpDefaultChar,         // 7 NULL 具体google
    LPBOOL  lpUsedDefaultChar // 8 NULL 具体google
);

2. 调用CRT函数wcstombs()

size_t wcstombs (
    
char *           mbstr,
    
const  wchar_t *  wcstr,
    size_t         count );

3. 使用CString构造器或赋值操作

//  假设有一个Unicode串wszSomeString

CString str1 ( wszSomeString ); 
//  用构造器转换
CString str2;

str2 
=  wszSomeString;  //  用赋值操作转换

4. 使用ATL串转换宏

#include  < atlconv.h >

//  还是假设有一个Unicode串wszSomeString

{
    
char szANSIString [MAX_PATH];
    USES_CONVERSION; 
// 声明这个宏要使用的局部变量

    lstrcpy ( szANSIString, OLE2A(wszSomeString) );
}

你可能感兴趣的:(UNICODE串转换成char类型串的四种方法[转])