char unicode

来源:互联网 发布:京东众筹和淘宝众筹 编辑:程序博客网 时间:2024/05/22 20:00

字符编码问题:WCHAH(即UNICODE)和char之间怎么样转化呢?
原讨论链接:http://community.csdn.net/expert/topicview1.asp?id=724830
所属论坛:基础类     审核组:VC/MFC
提问者:duankuanjun     解决者:
感谢:acptvc
关键字:VC/MFC 函数 基础类 转换 字符 串 int 参看 编码 原型 缓冲区 unicode
答案:
字符编码问题:WCHAH(即UNICODE)和char之间怎么样转化呢?
--------------------------------------------------------------- 您可以使用WideCharToMultiByte函数来把UNICODE字符串转成一个新的普通的字符串,反之则使用函数MultiByteToWideChar把普通字符串转成UNICODE字符串。

MultiByteToWideChar函数原型如下:

int MultiByteToWideChar(
  UINT CodePage,         // 指定将进行转换的代码页,可赋为CP_ACP表示ANSI代码页
  DWORD dwFlags,         // 字符的附加控制,一般不使用,传递0
  LPCSTR lpMultiByteStr, // 要转换的串
  int cbMultiByte,       // 要转换的串的长度
  LPWSTR lpWideCharStr,  // UNICODE缓冲区
  int cchWideChar        // UNICODE缓冲区大小
);

其中参数cchWideChar的值如果设为零,则返回需要的缓冲区的大小(UNICODE),可以在申请适当的缓冲区大小之后再次调用。


WideCharToMultiByte函数原型如下

int WideCharToMultiByte(
  UINT CodePage,            // 与上类似
  DWORD dwFlags,            
  LPCWSTR lpWideCharStr,    
  int cchWideChar,          
  LPSTR lpMultiByteStr,     
  int cbMultiByte,          
  LPCSTR lpDefaultChar,     // 出现不能转换的字符时使用的缺省字符
  LPBOOL lpUsedDefaultChar  // 当缺省字符被使用时设为有效
);