error C2440: '=': cannot convert from 'char *' to 'PCZZWSTR'

本文介绍两种从UTF-8编码转换到Unicode编码的方法。第一种是通过使用C++代码实现字符集转换,第二种是在工程属性中设置使用多字节字符集。这两种方法适用于需要在不同字符集间进行转换的场景。

方法一:

字符集转换: utf8 to uni.

std::wstring utf8_to_uni(const char *in)
{
    return _to_uni(CP_UTF8, in);   // ansi to uni: CP_ACP
}

std::wstring _to_uni(unsigned int acp, const char *lpa)
{
    int nChars = strlen(lpa)+1;
    wchar_t *lpw = new wchar_t[nChars];
    lpw[0] = 0;

    int ret = MultiByteToWideChar(acp, 0, lpa, -1, lpw, nChars);
    if(ret == 0)
    {
        delete []lpw;
        return L"";
    }

    std::wstring wstrlpw = lpw;
    delete []lpw;
    return wstrlpw;
}

方法二:

打开工程属性面板:"General" -> "Character Set"  设置为:"Use Multi-Byte Character Set" 。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值