#QT 字符编码集GB2312、GBK、BIG5、GB18030、Unicode、UTF-8、UTF-16

在QT4的老工程中,由于使用了如GB2312或GBK等较旧的编码格式,导致部分汉字无法正常显示。文章提到应使用GB18030或更新的编码标准来解决这个问题。GB18030是对GB2312的扩充,包含更多汉字,而GB18030和Unicode、UTF-8、UTF-16编码则提供了更全面的字符支持。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在QT4中由于编码集过于陈旧导致遇到过一个“坑”:炉煻

这两个汉子是没办法正常显示的,而旧工程中大多数用的GB2312或GBK格式

在qt main函数中初始化代码大多如下:

#if (QT_VERSION <= QT_VERSION_CHECK(5, 0, 0))
	// 这种编码集已经不推荐使用,过于陈旧的标准
	//QTextCodec	*pTextCodec = QTextCodec::codecForName("GB2312");
	//QTextCodec	*pTextCodec = QTextCodec::codecForName("GBK");
	
	QTextCodec	*pTextCodec = QTextCodec::codecForName("GB18030");
	if(NULL != pTextCodec)
	{
		QTextCodec::setCodecForCStrings(pTextCodec);
		QTextCodec::setCodecForLocale(pTextCodec);
		QTextCodec::setCodecForTr(pTextCodec);
	}
#endif

GB2312编码:1981年5月1日发布的简体中文汉字编码国家标准。GB2312对汉字采用双字节编码,收录7445个图形字符,其中包括6763个汉字。

BIG5编码:台湾地区繁体中文标准字符集,采用双字节编码,共收录13053个中文字,1984年实施。

GBK编码:1995年12月发布的汉字编码国家标准,是对GB2312编码的扩充,对汉字采用双字节编码。GBK字符集共收录21003个汉字,包含国家标准GB13000-1中的全部中日韩汉字,和BIG5编码中的所有汉字。

GB18030编码:2000年3月17日发布的汉字编码国家标准,是对GBK编码的扩充,覆盖中文、日文、朝鲜语和中国少数民族文字,其中收录27484个汉字。GB18030字符集采用单字节、双字节和四字节三种方式对字符编码。兼容GBK和GB2312字符集。

Unicode编码:国际标准字符集,它将世界各种语言的每个字符定义一个唯一的编码,以满足跨语言、跨平台的文本信息转换。Unicode采用四个字节为每个字符编码。

UTF-8和UTF-16编码:Unicode编码的转换格式,可变长编码,相对于Unicode更节省空间。UTF-16的字节序有大尾序(big-endian)和小尾序(little-endian)之别。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

汪宁宇

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值