#include #include #include #include #include QString hexdump(const QString &s) { QStringList hex; const QChar *p = s.constData(); for (int i=s.size();i;--i) hex.append(QString::number((p++)->unicode(),16)); return hex.join(" "); } QString hexdump(const char *s) { int size = strlen(s); QStringList hex; for (int i=0; i < size;++i) hex.append(QString::number((int)(s[i]&0xFF),16)); return hex.join(" "); } int main (void) { setlocale(LC_ALL,""); char x[3] = { 0xC3, 0x9F, 0 }; // UTF-8 string QString X = QString::fromUtf8(x); qDebug() << "locale:" << QString(setlocale(LC_CTYPE,0)) << "codec:" << QTextCodec::codecForLocale()->name(); qDebug() << "unicode:" << hexdump(X) << "local8Bit:" << hexdump(X.toLocal8Bit().constData()); }