C++字符串截断时中文的处理问题(中文被截断怎么处理?)

清泛原创
// 防止后台错误消息中汉字双字节被截断出现乱码
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++ 字符串 中文截断

分享到:
评论加载中,请稍后...
创APP如搭积木 - 创意无限,梦想即时!
回到顶部