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) );
}