• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
爱白菜的小昆虫
博客园    首页    新随笔    联系   管理    订阅  订阅

windows程序设计 Unicode和多字节之间转换

Unicode转多字节:WideCharToMultiByte

多字节转Unicode:MultiByteToWideChar

代码演示

#include <windows.h>

int WINAPI WinMain(
    HINSTANCE hInstance,
    HINSTANCE hPrevInstance,
    LPSTR lpCmdLine,
    int nCmdShow
    )
{
    BOOL b;
    WCHAR szWString[120] = L"Unicode宽字符:爱白菜的小昆虫", szWBuff[120];
    CHAR szAString[120] = "多字节窄字符:爱白菜的小昆虫", szABuff[120];
    TCHAR szString[120] = TEXT("自适应字符:爱白菜的小昆虫"), szBuff[120];

    //Unicode 宽字符
    MessageBoxW(NULL, szWString, L"Unicode显示", MB_OK);
    //Unicode转多字节
    WideCharToMultiByte( CP_ACP, 
        WC_COMPOSITECHECK, 
        szWString, //Unicode字节缓冲区
        lstrlenW(szWString)+1,//Unicode字节字符需要转换的长度,+1包涵'\0'
        szABuff,//接受被转换的字符串缓冲区
        sizeof(szABuff),//接受字符串缓冲区最大值
        NULL, &b);
    MessageBoxA(NULL, szABuff, "Unicode转多字节", MB_OK);

    //多字节 窄字符
    MessageBoxA(NULL, szAString, "多字节显示", MB_OK);
    //多字节转Unicode
    MultiByteToWideChar(CP_ACP,
        MB_PRECOMPOSED,
        szAString,//多字节缓冲区
        lstrlenA(szAString)+1,//需要转换的多字节字符串的长度,+1包涵'\0'
        szWBuff,//接受被转的字符串缓冲区
        sizeof(szWBuff));//接受字符串缓冲区最大值
    MessageBoxW(NULL, szWBuff, L"多字节转Unicode", MB_OK);
    
    return 0;
}

 

posted @ 2018-12-25 21:04  爱白菜的小昆虫  阅读(534)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3