C++字符串截断时中文的处理问题(中文被截断怎么处理?)
清泛原创
// 防止后台错误消息中汉字双字节被截断出现乱码
一个字节和0x80与运算(& 0x80 )是否不为零,不为零则该字节是汉字的第一个字节,否则是普通的ASCII字符。
具体请参考:https://www.tsingfun.com/it/cpp/1335.html
当然,还有其他方式就是判断 > 127 或 < 0(即首bit为1,signed时值为负),道理也是一样,不过推荐上面的写法。
if (pRspMsg->RspMsg.buf[pRspMsg->RspMsg.Length() - 2] & 0x80) //是否是中文第一个字节
pRspMsg->RspMsg.buf[pRspMsg->RspMsg.Length() - 2] = 0; //是的话赋0
一个字节和0x80与运算(& 0x80 )是否不为零,不为零则该字节是汉字的第一个字节,否则是普通的ASCII字符。
具体请参考:https://www.tsingfun.com/it/cpp/1335.html
当然,还有其他方式就是判断 > 127 或 < 0(即首bit为1,signed时值为负),道理也是一样,不过推荐上面的写法。
上一篇:c++ boost::multi_index composite keys efficiency
下一篇:c++读注册表