Windows中文编码显示问题集锦

本文介绍了解决控制台中文乱码的方法,通过调整字符集编码来确保正确显示UTF-8或GBK编码的内容,并提供了Visual Studio调试时遇到中文显示问题的解决方案。

1)控制台中文乱码 解决方案

问题根源

    中文显示乱码的原因是控制台设置的编码格式,如果控制台设置的编码格式是GBK,数据库的存储内容是UTF-8,当然无法正常显示


解决方案

    1)启动CMD,查看当前的字符集编码,使用指令chcp

Active code page:65001 :UTF-8编码

活动代码页:936 :GBK编码

注意:很多用户希望能够在控制台下输入中文,必须使用指令chcp 936,切换到GBK编码格式,才能够正常输入

    2)目前查看UTF-8编码的数据库文件,使用指令chcp 65001,切换到UTF-8编码字符集

    3)进入到sqlite.exe程序的目录,启动sqlite.exe,这个时候正常显示UTF-8数据库内容

    4)如果数据库内容是GBK编码,可以使用chcp 936。


2)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 风雨在途






     本文转自fengyuzaitu 51CTO博客,原文链接:http://blog.51cto.com/fengyuzaitu/1953777,如需转载请自行联系原作者

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值