[Interest] Strange behaviour with QtextCodec::toUnicode

arnaud but sdnetwork at gmail.com
Sat Aug 4 05:28:29 CEST 2012


Hello,

i have reported last year on the tracker a strange behaviour with this 
function : https://bugreports.qt-project.org/browse/QTBUG-23139.

in fact a string empty is also null.

For exemple :

#include <QCoreApplication>
#include <QTextCodec>
#include <QDebug>
int main(int argc, char *argv[])
{
     QCoreApplication a(argc, argv);
     QTextCodec *_code = 
QTextCodec::codecForName(QString(QLatin1String("Windows-1252")).toLocal8Bit());
     QString _t = _code->toUnicode("");
     qWarning() << "codec toUnicode" << _t.isEmpty() << _t.isNull();
     // return true  and true; bad
     _t = QString::fromUtf8("");
     qWarning() << "fromUtf8" << _t.isEmpty() << _t.isNull();
     // return true and false; good


     return a.exec();
}

it causes problems with database driver because when a QString is empty 
the driver database can put null into the database.

as i say in the bug tracker the problem seems to be in qsimplecodec.cpp 
in the function convertToUnicode.




More information about the Interest mailing list