QT_NO_CAST_TO_ASCII QT_NO_CAST_FROM_ASCII

本文介绍了QT中通过定义QT_NO_CAST_TO_ASCII和QT_NO_CAST_FROM_ASCII来限制QByteArray与QString之间的转换,避免不当使用QString的toAscii方法。同时阐述了QString从C风格字符串转换时的编码限制。
摘要由CSDN通过智能技术生成

QT_NO_CAST_TO_ASCII

当开启这个定义后会限制以下行为

QByteArray 不能append QString,不能insert QString,不能replace QString,不能+= QString,不能indexOf QString,不能lastIndexOf QString

因为QByteArray操作QString时,会调用QString的toAscii方法,但这个是不太常用的用法


QT_NO_CAST_FROM_ASCII

这个理解起来是比较简单的

QString str = "hello";

禁止触发QString::fromAscii行为

QString从C风格字符串(const char *)转来的字符,只支持ascii、utf8和latin1

其余的编码都需要动用QTextCodec的toUnicode 来获取返回的QString

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值