unsigned char*转string或QString

20 篇文章 0 订阅

在使用libevent开发Http服务接收数据的过程中,发现返回的是unsigned char*,默认的编码UTF-8,如果转为正确的内容呢?

 

1. unsigned char*转string

unsigned char* pBuf = evbuffer_pullup(req->input_buffer, -1);
vector<unsigned char> vctBuf(pBuf, pBuf + nPostSize);
string strBuf(vctBuf.begin(), vctBuf.end());

另一种做法是new char* 然后用memcpy的,会频繁申请和释放内存,不推荐。上面的方式用的全是栈内存,简单方便。

因为编码是UTF-8,中文是乱码的,需要转一下。

 

2. unsigned char*转QString

unsigned char* pBuf = evbuffer_pullup(req->input_buffer, -1);
vector<unsigned char> vctBuf(pBuf, pBuf + nPostSize);
string strBuf(vctBuf.begin(), vctBuf.end());
QString strText = QString::fromUtf8(strBuf.c_str());

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值