清泛IT社区

标题: C++字符串截断时中文的处理问题(中文被截断怎么处理?) [打印本页]

作者: 清泛网    时间: 2016-03-31 11:32
标题: C++字符串截断时中文的处理问题(中文被截断怎么处理?)
// 防止后台错误消息中汉字双字节被截断出现乱码
if (pRspMsg->RspMsg.buf[pRspMsg->RspMsg.Length() - 2] & 0x80)
         pRspMsg->RspMsg.buf[pRspMsg->RspMsg.Length() - 2] = 0;



一个字节和0x80与运算(& 0x80 )是否不为零,不为零则该字节是汉字的第一个字节,否则是普通的ASCII字符。
具体请参考:http://www.tsingfun.com/html/2016/dev_0331/1335.html


当然,还有其他方式就是判断 > 127 或 < 0(即首bit为1,signed时值为负),道理也是一样,不过推荐上面的写法。





欢迎光临 清泛IT社区 (https://bbs.tsingfun.com/) Powered by Discuz! X3.3