QT_NO_CAST_TO_ASCII QT_NO_CAST_FROM_ASCII

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

你可能感兴趣的:(Qt,QString)