用windows的Qt Creator里cout打印中文竟然会出现乱码,Liunx却不会,这是为啥?
·
今天在用Qt的时候,用cout打印中文,发现打印出来的是个乱码,问了ai才发现是编码方式不对,QT用的源代码默认是UTF-8的格式,而我的控制台默认是GBK的格式。
背景知识:
我们的英文字母是用Ascii码来表示的,也就是一个字符对应一个整数,所以我们这里的GDK和UTF-8编码也是用一个大表格,一个字符对应一个整数
所以由于我们QT用的源代码默认是UTF-8的格式,而我的控制台默认是GBK的格式,那么相当于我们编码最后是变成了UTF-8格式,但是控制台拿着GBK的表去解析,所以导致了乱码。
目前,我们随着发展的演变,表示汉字的字符集,主要是两种方式:GBK和UTF-8
GBK:中文专用,使用两个字节表示一个汉字,Windows简体中文版,默认字符集就是GBK
UTF-8:全球通用,有各种语言,在utf-8中,汉字一般是3个字节
那么我们qt怎么解决?
这里只介绍一种,其他方法问ai就行
我们可以用Qt提供的qDebug()工具,借助这个,可以完成打印日志的过程,同时解决了编码问题。
下面图是使用方法

我们使用qDebug()的好处:
1.输出的日志是开发阶段会显示的,调试的时候显示,在正式发布的时候是没有的
2.qDebug可以通过编译开关,来实现一键式开关
3.我们可以根据日志信息更好的找到程序的bug
更多推荐



所有评论(0)