码迷,mamicode.com
首页 > 其他好文 > 详细

VS调试:字符串中的字符无效

时间:2017-09-15 18:30:13      阅读:251      评论:0      收藏:0      [点我收藏+]

标签: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调试:字符串中的字符无效

标签:vs   调试   字符串中的字符无效

原文地址:http://fengyuzaitu.blog.51cto.com/5218690/1965583

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!