首页 > Windows开发 > 详细

Windows 上将一个由多字节字符串转换为 Unicode 形式

时间:2015-02-22 15:40:13      阅读:408      评论:0      收藏:0      [点我收藏+]

我们使用 Windows 函数 MultiByteToWideChar 将多字节字符串转换为宽字符串。如下所示:

int MultiByteToWideChar(
    UINT      uCodePage,       //标识了与多字节字符关联的一个代码页值
    DWORD     dwFlags,         //允许进行额外控制, 但一般传入 0
    PCSTR     pMultiByteStr,  //要转换的字符串
    int       cbMultiByte,     //字符串的长度, 若传入 -1, 则自动判断长度
    PWSTR     pWideCharStr,    //得到的 Unicode 字符串会传入指定的内存缓冲区
    int       cchWideChar);    //指定缓冲区的最大长度

 

转换的具体步骤:

1. 调用 MultiByteToWideChar,

    为 pWideCharStr 参数传入 NULL,

    为 cchWideChar  参数传入 0,

    为 cbMultiByte    参数传入 -1。

2. 分配足以容纳转换后的 Unicode 字符串的一个内存块。

   它的大小是上一个 MultiByteToWideChar 调用的返回值乘以 sizeof(wchar_t)。

3. 再次调用 MultiByteToWideChar,这一次

    将缓冲区地址作为 pWideCharStr 参数的值传入,

    将第一次 MultiByteToWideChar 调用的返回值乘以 sizeof(wchar_t) 后得到大小作为 cchWideChar 参数的值传入。

4. 使用转换后的字符串。

5. 释放Unicode字符串占用的内存块。

Windows 上将一个由多字节字符串转换为 Unicode 形式

原文:http://www.cnblogs.com/wuOverflow/p/4297504.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!