...新建纯C项目(非Qt项目),中文输出为乱码,是怎么回事呢?
发布网友
发布时间:2023-12-27 15:08
我来回答
共1个回答
热心网友
时间:2024-04-07 04:30
字符集问题:windows默认的是GBK 字符集,而Qtcreator编辑器的默认字符集是UTF-8,所以毫无疑问会输出乱码。
字符集之间转换:LPSTR LPWSTR
LPWSTR转变成LPSTR
LPTSTR pp =L"i am a strudent";
LPSTR p =newCHAR[100];
WideCharToMultiByte(CP_ACP, 0, pp, -1, p, 100, NULL, NULL);
输出:p ="i am a strudent";
LPSTR转变成LPWSTR
LPWSTR pp =newTCHAR[100];
LPSTR p ="i am a strudent";
MultiByteToWideChar(CP_ACP, 0, p, -1, pp, 100);
输出:pp ="i am a strudent";
备注:WideCharToMultiByte与MultiByteToWideChar中第6个参数设置为零时,则不进行转换,而直接返回出对应转换所需要的存储区大小。故而实际使用中常如下:
LPSTR p ="i am a strudent";
intmm = MultiByteToWideChar(CP_ACP, 0, p, -1, NULL, 0);
LPWSTR pp =newTCHAR[mm];
MultiByteToWideChar(CP_ACP, 0, p, -1, pp, mm);
delete[] pp;
最简单的方式是改qtcreator的字符编码
然后重新创建项目 和文件,或者使用其它可转码的编辑器转码后把项目文件再拷回来。
qt creator 5.0.2 新建纯C项目(非Qt项目),中文输出为乱码,是怎么回事呢...
字符集问题:windows默认的是GBK 字符集,而Qtcreator编辑器的默认字符集是UTF-8,所以毫无疑问会输出乱码。字符集之间转换:LPSTR LPWSTR LPWSTR转变成LPSTR LPTSTR pp =L"i am a strudent";LPSTR p =newCHAR[100];WideCharToMultiByte(CP_ACP, 0, pp, -1, p, 100, NULL, NULL);输出:p ="i...
qt代码出现中文乱码如何解决?
在使用Qt编写程序时,经常会遇到中文乱码的问题。这主要与编码设置有关,解决方法其实并不复杂,但需要细心检查。首先,你需要确认Qt项目中的字符编码设置是否正确。在Qt Creator中,项目设置中有一个"Code page"选项,它决定了源代码文件的编码。你需要将这里的设置改为"UTF-8"或其他支持中文的编码格式。
Windows环境下Qt Creator控制台输出中文乱码解决方法
当在Plain C/C++ Application中控制台输出中文时,会显示乱码现象。通常问题出在编译器的文件编码设置上。以下步骤可实现问题解决:1. 打开Qt Creator,进入工具->选项菜单。2. 进入文本编辑器->显示界面,勾选 Display file encoding选项。3. 将右上角显示的编码设置调整为UTF-8。4. 在弹出的对话框...
QT6在win10下终端输出中文乱码?
我刚开始在win10下使用Qt Creator(4.3.0版本)时,遇到过这么个问题:当程序输出中文时,中文会乱码,程序本身的中文未乱码。 乱码截图如下: 我查阅了很多资料,最后在自己的不断的尝试..
VS中编写Qt项目时,提取ts文件出现中文乱码的解决方法(填坑)
遇到中文乱码的问题,可能是在使用lupdate工具提取项目中的待翻译文字生成.ts文件时出现。此问题通常源于文件编码不正确。正确步骤是确保项目中的中文源文件编码为GB2312格式,而非UTF-8。调整编码后重新生成.ts文件,项目页面的中文显示将恢复正常。完成解决方法后,无需再关注、转发或点赞,只需在需要时...
QT设计登录窗口,弹窗错误提示汉字输出为乱码
一般不要用中文;去掉 QTextCodec::setCodecForLocale(QTextCodec::codecForName("UTF-8"));有中文的地方用 QString::fromlocal8bit("警告");"警告"在你的代码文件中用的是本地编码,所以可以用QString::fromlocal8bit()函数正确转换;若你设置了本地编码为ut-8,就对不上了 ...
Qt|使用QuaZip压缩包中文乱码问题解决
记得对编译后的dll和lib文件进行替换,以确保新功能生效。解决中文乱码问题,不仅提升了QuaZip处理加密压缩包的兼容性和可靠性,也为后续项目的开发提供了便利。作为C++开发程序猿,通过不断学习和实践,我致力于提升编程技能和解决实际问题的能力。希望这一分享能对遇到类似问题的开发者有所帮助。
qt 控制台报blacklist value is empty
出现了乱码解决方法:安装qt,初学者建议安装以上推荐的mingw版,不用配置任何环境,启动为qtcreator.exe2、新建项目以后,会出现两种情况:1、文件乱码,控制台输出不乱码2、文件不乱码,控制台输出乱码3、我们需要做的是:选择工具-->选项-->文本编辑器4、选择“显示“选项卡,勾选最后一个勾:display...
一起学Qt(五)项目实战之httpUtil及响应解析与写配置文件
1. 接收的JSON数据使用UTF-8编码,qDebug输出显示乱码,但界面显示正常。这可能与Windows操作系统有关,可以通过QString::fromUtf8(str.toUtf8())来解决。2. 当将一个QJsonValue数据转换为toArray()时,会报错:"calling 'toArray' incomplete return QJsonArray"。这是因为没有引入QJsonArray造成...
请问后缀是.ESB文件是什么文件?怎么样打开呀?
Bitmap位图文件,这是微软公司开发Paint的自身格式,可以被多种Windows和Windows NT平台及许多应用程序支持,支持32位颜色,用于为Windows界面创建图标的资源文件格式。 .. .bw是包含各种像素信息的一中黑白图形文件格式 .. .cC 语言源程序文件,在C语言编译程序下编译使用 .. .cabMicrosoft制订的压缩包格式,常用于软件...