字符转换  ANSI 转UTF-8

本文详细介绍了如何使用C++从ANSI编码转换为UTF-8编码的方法。通过具体的代码示例,深入解析了字符编码转换过程中的关键步骤,包括使用MultiByteToWideChar函数将ANSI字符串转换为宽字符,再将其转换为UTF-8字符串。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/*****************************
字符转换  ANSI 转UTF-8
*****************************/
long  ANSItoUTF8(CString bufRecv,char* utf8_buf)
{
    long  unicodeLen = ::MultiByteToWideChar(CP_UTF8, 0, bufRecv, -1, NULL, 0);
    wchar_t *pUnicode = new  wchar_t[unicodeLen+1];
    memset(pUnicode, 0, unicodeLen * sizeof(wchar_t));
    ::MultiByteToWideChar(CP_UTF8, 0, bufRecv, -1, (LPWSTR)pUnicode, unicodeLen);
    wstring rt_utf8 = pUnicode;
    delete pUnicode;
    long utf8length = rt_utf8.length();
    CString str(rt_utf8.c_str());
    memset(utf8_buf,0,sizeof(utf8_buf));
    strcat(utf8_buf, (LPSTR)(LPCTSTR)(str));
    return rt_utf8.length();
}
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值