中文QString转成char类型中造成乱码的原因

QString内部使用unicode编码,转换到char类型时可能出现乱码。UTF-8编码包含全球字符,GBK兼容GB2312并支持简繁中文。转换过程通过toLocal8Bit()实现,但显示乱码可能因Qt界面使用latin编码。实际转换数据正确,乱码现象由编码不匹配引起。
摘要由CSDN通过智能技术生成

QString内部采用的是unicode编码,但是unicode编码有很多种,在实际应用时应制定具体的编码形式,常见的有GBK、GB2312和UTF-8等。

UTF-8是解决国际上字符的一种多字节编码,它包含全世界国家所用到的所有字符,通用性强。英文单字节表示,中文需要三个字节表示。

GBK是国家标准GB2312基础上扩容后并兼容GB2312标准,无论英文中文都用双字节来表示。GBK包含全部中文字符,是中文国家标准的一种编码方式。GB2312是简体中文的码,GBK则支持简体中文和繁体中文。

指定unicode的编码方式一般采用的方法是在main函数中添加如下语句:

QTextCodec::setCodecForTr(QTextCodec::codecForName("GBK"));

QTextCodec::setCodecForCStrings(QTextCodec::codecF

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值