zl程序教程

您现在的位置是:首页 >  工具

当前栏目

C++Qt的字符编码

2023-09-14 09:05:12 时间

1、常见的字符编码

windows系统默认使用ANSI(ASKII、GBK)

Linux系统默认使用utf-8

Qt内部使用unicode

注意: 在实际开发时,所用的编码一般不会是Unicode,和Qt内部的字符编码不一致,直接显示“中文字符串”可能会出现乱码

注意: 如果使用utf-8编写程序时,在使用"const char*" 字符串构建Qt内部使用QString 字符串时,默认会使用fromutf8()函数自动转换成Qt内部的Unicode编码,可以直接显示中文字符串;但是如果编写代码时使用的不是utf-8,就会显示乱码。

2、字符串编码转换QTextCodec

  QByteArray encodedString = "中文编码字符串";
  //创建编码对象
  QTextCodec *codec = QTextCodec::codecForName("GBK");
  //使用toUnicode()函数完成编码转换
  QString string = codec->toUnicode(encodedString);

CSDN QT开发文章推荐:Qt开发必备技术栈学习路线和资料

示例:

#include <QAppplication>
#include <QPushButton>
#include <QTextCodec>

int main(int argc, char **argv)
{
	QApplication app(argc, argv);
	//1)创建编码对象
	QTextCodec* coder = QTextCodec::codeForName("GBK");
	//2)使用toUnicode()函数转换
	QString str = coder->toUnicode("我是一个按钮!");
	QPushButton button(str);
	button.show();
	return exec();
}