VS调试:字符串中的字符无效
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VS调试:字符串中的字符无效相关的知识,希望对你有一定的参考价值。
场景
网络发送过来的报文是utf-8编码的Json数据,其中保存有中文。使用Jsoncpp解析的时候
单步调试获取到的变量,在获取包含中文变量的时候,查看std::string字符串变量,提示;字符串中的字符无效
解析
VS高版本新加的功能,如果字符串中包含有非打印字符,或者utf8编码,调试器自动显示:
字符串中的字符无效。在这里被误导过,以为Jsoncpp无法正确解析utf-8编码的格式,其实Jsoncpp已经解析出内容,只是无法在这种情况下显示中文,必须是GBK编码才行
历程
std::string strName = root["name"].asString(); //name里面的中文字符:风雨在途
这个时候定位到strName,提示字符串中的字符无效
解决
将strName添加监视,在名称strName之后,添加,s8,就可以正常显示了
例子
名称 值
strName,s8 风雨在途
以上是关于VS调试:字符串中的字符无效的主要内容,如果未能解决你的问题,请参考以下文章