qtextcodec:codecforname返回的是啥编码

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了qtextcodec:codecforname返回的是啥编码相关的知识,希望对你有一定的参考价值。

参考技术A 下面两行任选一行加入到程序中试试: QTextCodec::setCodecForCStrings(QTextCodec::codecForName("GB2312")); QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8"));本回答被提问者采纳

为QtCreator项目模板添加自动中文支持

每用QtCreator创建一个Qt项目时都要为它添加中文支持,比如qt4:

就要在main.cpp里添加

QTextCodec* codec = QTextCodec::codecForName("GB18030");
QTextCodec::setCodecForCStrings(codec);
QTextCodec::setCodecForLocale(codec);
QTextCodec::setCodecForTr(codec);
这样很不爽,修改了一下工程模板,使它在创建Qt项目是自动加上中文支持。
首先修改控制台模板,在我的机器上路径是:D:Qtqtcreator-4.0.3shareqtcreator emplateswizardsprojectsqmakeconsoleappmain.cpp
修改后的main.cpp代码如下
%{Cpp:LicenseTemplate}
%{JS: QtSupport.qtIncludes([ ‘QtCore/QCoreApplication‘ ],
[ ‘QtCore/QCoreApplication‘ ]) }
#include <QtCore>

#if QT_VERSION >= 0x050000
#pragma execution_character_set("utf-8")
#endif

int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
a.addLibraryPath(a.applicationDirPath());

#if QT_VERSION < 0x050000
QTextCodec* codec = QTextCodec::codecForName("GB18030");
QTextCodec::setCodecForCStrings(codec);
QTextCodec::setCodecForLocale(codec);
QTextCodec::setCodecForTr(codec);
#else
QTextCodec::setCodecForLocale(QTextCodec::codecForName("GB18030"));
#endif

return a.exec();
}
</pre><pre code_snippet_id="1822416" snippet_file_name="blog_20160811_3_5046410" name="code" class="cpp">然后修改窗口程序模板,路径为:D:Qtqtcreator-4.0.3shareqtcreator emplatesqt4projectmain.cpp
修改后的main.cpp代码如下:
#include "%INCLUDE%"
#include <%QAPP_INCLUDE%>
#include <QtCore>

#if QT_VERSION >= 0x050000
#pragma execution_character_set("utf-8")
#endif

int main(int argc, char *argv[])
{
QApplication a(argc, argv);
a.addLibraryPath(a.applicationDirPath());

#if QT_VERSION < 0x050000
QTextCodec* codec = QTextCodec::codecForName("GB18030");
QTextCodec::setCodecForCStrings(codec);
QTextCodec::setCodecForLocale(codec);
QTextCodec::setCodecForTr(codec);
#else
QTextCodec::setCodecForLocale(QTextCodec::codecForName("GB18030"));
#endif


%CLASS% w;
%SHOWMETHOD%
return a.exec();
}

这样就能在创建项目时,项目就能自动支持中文了。
提供修改后的项目模板下载地址:
http://yunpan.cn/c6UdeRCjVmryV  访问密码 f0da
把目录放到
D:Qtqtcreator-4.0.3shareqtcreator
下覆盖即可。
D:Qtqtcreator-4.0.3是安装目录

最后加一个生成的程序中防止文件太乱的东东:
D:Qtqtcreator-4.0.3shareqtcreator emplateswizardsprojectsqmakeconsoleappfile.pro
加上
MOC_DIR = ./moc
RCC_DIR = ./rcc
OBJECTS_DIR = ./obj
UI_DIR = ./ui

---------------------
作者:hats8888
来源:CSDN
原文:https://blog.csdn.net/hats8888/article/details/52179403
版权声明:本文为博主原创文章,转载请附上博文链接!

以上是关于qtextcodec:codecforname返回的是啥编码的主要内容,如果未能解决你的问题,请参考以下文章

qt中文乱码

QT utf-8与gbk编码互转code

qt 编码问题

qt中文格式GBK.UTF-8,unicode 之间的转换

Qt乱码的问题

Qt开发中的实用笔记二--中文转码问题和string转换问题: