qt 几种char * 转 QString方法(支持中文)

本文探讨了char*与QString之间的转换方法,重点分析了Utf8和GB2312编码下的不同转换策略。对于Utf8编码,推荐使用QString::fromUtf8(test)或QString(test);对于GB2312编码,则建议采用QString::fromLocal8Bit(test)或QString(QLatin1String(test)).正确选择转换方法对于避免乱码至关重要。

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

网上很多 char * 和 QString的相互转换,但一般都没有提到字符集的编码,使用Utf8和GB2312编码是有区别的,这时候需要用不用的转换方法。目前知道的有以下几种转换方法。

char *test;

QString::fromUtf8(test);
QString(test);
QTextCodec::codecForName("GB2312")->toUnicode(test);
QString::fromLocal8Bit(test);
QString(QLatin1String(test));

不同编码需要用不同的转换方法,根据测算给出下面的结论。

(1)当使用的是Utf8编码时,经测试使用以下两个都没有问题

      QString::fromUtf8(test);
      QString(test);

(2)当使用的是GB2312编码时,经测试使用以下两个都没有问题

      QString::fromLocal8Bit(test);
      QString(QLatin1String(test));

要根据实际编码需求来用不同的转换。测试是这样,欢迎谈论交流。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值