彻底解决VisualSutdio中文乱码的问题

编程入门 行业动态 更新时间:2024-10-10 17:29:59

彻底解决VisualSutdio中文<a href=https://www.elefans.com/category/jswz/34/1768993.html style=乱码的问题"/>

彻底解决VisualSutdio中文乱码的问题

问题描述

在使用VS写QT的C++项目的时候,直接输入中文,但是一直乱码。如下图。后来找了一圈,发现windows默认使用的格式是GBK/GB2312/GB18030。如果要输入中文,需要对含中文的字符串进行转码。

解决办法

要按照下面的方式来写。

fromLocal8Bit的作用是使GBK/GB2312/GB18030格式的字符串转换成Unicode格式。

Dock->setWindowTitle(QString::fromLocal8Bit("课程列表"));

新出现的问题

过了一段时间,结果按照上面的方式写,又出现中文乱码,如下图。理论上来说,同样的代码执行结果应该是完全一样的。所以可能不是代码的问题,而是别的问题。

原因

经过排查和网上搜索相关的文章,发现问题的原因果然不在代码上,而文件的保存格式有问题。通常代码里面中文的编码格式会设置成UTF-8。但是UTF-8也分为两种,一种带签名,一种不带签名。带签名的会有BOM信息,来告诉应用程序所用的是UTF-8编码。

  • UTF-8(带签名):带有BOM信息,可以被应用程序识别为UTF-8编码。
  • UTF-8(不带签名):不带有BOM信息,不能被应用程序识别为UTF-8编码。在被其他文件include时,需要使用这种。

因为编码问题而出现乱码的情况,无非也就两种:一种是在应该使用UTF-8(带签名)的文件里使用不带签名的编码。另外一种是在不应该带签名的文件里面,使用了带签名的UTF-8编码,使文件有两层BOM信息,从而导致乱码。

上面问题出现的原因,是因为这个文件没有带BOM信息,导致应用程序无法识别,而出现乱码。

解决办法

  1. 在VS里,添加高级保存选项。
    A.选择工具→自定义→打开命令→菜单栏选择【文件】

B.点击【添加命令】,选中【文件】,选择【高级保存选项】。

2.在菜单栏里,点击文件,打开高级保存选项。选择编码格式为【Unicode(UTF-8带签名)】,点击确定。

3.修改完成后,中文显示正常,如下图。中文乱码问题解决。

更多推荐

彻底解决VisualSutdio中文乱码的问题

本文发布于:2024-02-16 18:20:28,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1691035.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:乱码   中文   彻底解决   VisualSutdio

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!