Unicode字符集---MFC中CString与std::string转换

解决方法通过使用ATL字符串转换宏

 1.Unicode字符集

        (1)std::string转CString

                std::string name = "convert";
                CString c_name = CA2T(name.c_str());

                所以CA2T也就是CA2W就是将多字符集转换为宽字符UNICODE,也可写成CA2W。

                CA2T含义:
                C:convert,转换的意思
                A:ANSI字符串,也就是Muti-Byte
                2:to
                T:中间类型,如果定义了_UNICODE,则T表示W;如果定义了_MBCS,则T表示A
                W:宽字符串,也就是UNICODE

         (2)CString转std::string

                CString c_name = _T("convert");
                std::string str = CW2A(c_name.GetString()); 

                所以CT2A其实就是CW2A就是将Unicode转换为多字符集ASCII,也可写成CW2A
                CT2A含义
                C:convert,转换的意思
                T:中间类型,如果定义了_UNICODE,则T表示W;如果定义了_MBCS,则T表示A
                W:宽字符串,也就是UNICODE
                A:ANSI字符串,也就是Muti-Byte。

2.多字节字符集

        (1)std::string转CString

                 std::string name = "convert";

                CString c_name; c_name = name.c_str(); 

        (2)CString转std::string

                CString c_name = "convert";
                std::string str = c_name.GetString();

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值