码迷,mamicode.com
首页 > Windows程序 > 详细

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

时间:2015-02-22 15:40:25      阅读:152      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!