设为首页收藏本站

中国膜结构网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

膜结构车棚
膜结构车棚膜结构资质国产膜材 膜结构网中国膜结构协会
查看: 154|回复: 0

C/C++ Unicode与Ansi编码互转

[复制链接]
  • TA的每日心情
    开心
    2021-6-22 09:39
  • 签到天数: 1542 天

    [LV.Master]伴坛终老

    发表于 2021-2-3 17:17 | 显示全部楼层 |阅读模式
    1. #include <windows.h>
    2. #include<iostream>
    3. using namespace std;

    4. void Ansi2Unicode(wchar_t* _Destination, const char*_Source)
    5. {
    6.         //预转换,得到所需空间的大小
    7.         int wcsLen = MultiByteToWideChar(CP_ACP, NULL, _Source, strlen(_Source), NULL, 0);

    8.         //分配空间要给'\0'留个空间,MultiByteToWideChar不会给'\0'空间
    9.         wchar_t* wszString = new wchar_t[wcsLen + 1];
    10.         //转换
    11.         MultiByteToWideChar(CP_ACP, NULL, _Source, strlen(_Source), wszString, wcsLen);
    12.         //最后加上'\0'
    13.         wszString[wcsLen] = '\0';

    14.         wcscpy(_Destination, wszString);

    15.         delete[] wszString;
    16. }

    17. void Unicode2Ansi(char* _Destination, const wchar_t*_Source)
    18. {
    19.         //预转换,得到所需空间的大小,这次用的函数和上面名字相反
    20.         int ansiLen = WideCharToMultiByte(CP_ACP, NULL, _Source, wcslen(_Source), NULL, 0, NULL, NULL);
    21.         //同上,分配空间要给'\0'留个空间
    22.         char* szAnsi = new char[ansiLen + 1];
    23.         //转换
    24.         //unicode版对应的strlen是wcslen
    25.         WideCharToMultiByte(CP_ACP, NULL, _Source, wcslen(_Source), szAnsi, ansiLen, NULL, NULL);
    26.         //最后加上'\0'
    27.         szAnsi[ansiLen] = '\0';

    28.         strcpy(_Destination, szAnsi);

    29.         delete[] szAnsi;
    30. }

    31. void UTF82Unicode(wchar_t* _Destination, char* _Source)
    32. {
    33.         //UTF8 to Unicode
    34.         char* szU8 = _Source;
    35.         //预转换,得到所需空间的大小
    36.         int wcsLen = ::MultiByteToWideChar(CP_UTF8, NULL, szU8, strlen(szU8), NULL, 0);
    37.         //分配空间要给'\0'留个空间,MultiByteToWideChar不会给'\0'空间
    38.         wchar_t* wszString = new wchar_t[wcsLen + 1];
    39.         //转换
    40.         ::MultiByteToWideChar(CP_UTF8, NULL, szU8, strlen(szU8), wszString, wcsLen);
    41.         //最后加上'\0'
    42.         wszString[wcsLen] = '\0';
    43.        
    44.         wcscpy(_Destination, wszString);

    45.         delete[] wszString;
    46.         wszString = NULL;
    47. }

    48. void Unicode2UTF8(char* _Destination, wchar_t*  _Source)
    49. {
    50.         // unicode to UTF8
    51.         wchar_t* wszString =_Source;
    52.         //预转换,得到所需空间的大小,这次用的函数和上面名字相反
    53.         int u8Len = ::WideCharToMultiByte(CP_UTF8, NULL, wszString, wcslen(wszString), NULL, 0, NULL, NULL);
    54.         //同上,分配空间要给'\0'留个空间
    55.         //UTF8虽然是Unicode的压缩形式,但也是多字节字符串,所以可以以char的形式保存
    56.         char* szU8 = new char[u8Len + 1];
    57.         //转换
    58.         //unicode版对应的strlen是wcslen
    59.         ::WideCharToMultiByte(CP_UTF8, NULL, wszString, wcslen(wszString), szU8, u8Len, NULL, NULL);
    60.         //最后加上'\0'
    61.         szU8[u8Len] = '\0';

    62.         strcpy(_Destination, szU8);

    63.         delete[] szU8;
    64.         szU8 = NULL;
    65. }

    66. int main()
    67. {
    68.         wchar_t wstr[1024];
    69.         char str[1024];

    70.         wcscpy(wstr, L"U转A!");
    71.         UnicodeToAnsi(str, wstr);
    72.         MessageBoxA(NULL, str, "", MB_ICONASTERISK | MB_OK);

    73.         strcpy(str, "A转U");
    74.         AnsiToUnicode(wstr, str);
    75.         MessageBox(NULL, wstr, L"", MB_ICONASTERISK | MB_OK);


    76.         return 0;
    77. }
    复制代码
    回复


    http://www.mjgw.org/ 专业从事膜结构设计、制作加工、施工安装的膜结构工程服务,能够为客户提供专业的膜结构整体解决方案。做中国最好的膜结构综合服务平台。欢迎大家联系电话:198-7840-1958,QQ:463017170.
    相关关键词:膜结构车棚,膜结构车棚覆盖,膜结构车棚公司,膜结构车棚多少钱,膜结构车棚厂家,膜结构车棚价格,社区膜结构车棚,膜结构车棚膜布厂家 ,膜结构车棚哪家好,膜结构车棚多少钱一米,膜结构车棚报价,膜结构车棚哪里有,膜结构车棚定制,膜结构车棚安装,膜结构车棚设计,膜结构车棚电话,膜结构车棚加工,膜结构车棚膜布价格,膜结构车棚批发,膜结构车棚制造商,膜结构车棚生产厂家,膜结构车棚设计,膜结构车棚施工,膜结构车棚多少钱一平米,膜结构车棚订制,张拉膜车棚,张拉膜车棚覆盖,张拉膜车棚公司,张拉膜车棚多少钱,张拉膜车棚厂家,张拉膜车棚价格,社区张拉膜车棚,张拉膜车棚膜布厂家 ,张拉膜车棚哪家好,张拉膜车棚多少钱一米,张拉膜车棚报价,张拉膜车棚哪里有,张拉膜车棚定制,张拉膜车棚安装,张拉膜车棚设计,张拉膜车棚电话,张拉膜车棚加工,张拉膜车棚膜布价格,张拉膜车棚批发,张拉膜车棚制造商,张拉膜车棚生产厂家,张拉膜车棚设计,张拉膜车棚施工,张拉膜车棚多少钱一平米,张拉膜车棚订制,常用膜材品牌:德国杜肯、法国法拉利、德国海德斯、德国米乐、日本平岗、韩国秀博、比利时希运、美国赫虏伯、中国科宝、上海慧遥。

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    关闭

    推荐膜材品牌上一条 /6 下一条

    进口膜材 国产膜材 pvdf膜材ptfe膜材ETFE膜材
    最好的膜结构公司 一级膜结构资质 膜结构一级资质
    膜结构设计-膜结构十大品牌-etfe设计-充气膜结构
    诺科膜结构
    遨都膜结构设计
    中国膜结构网
    中国空间膜结构

    QQ|申请友链|手机版|中国膜结构论坛