[Qt-interest] Non-latin characters in QString and char * on Windows

Konstantin Tokarev annulen at yandex.ru
Thu Mar 3 09:48:24 CET 2011


Thanks for all replies!

I've modified my code but it still works improperly on Windows:


int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QString fileName = QFileDialog::getOpenFileName();
    QByteArray fileNameArr = QFile::encodeName(fileName);
    const char * fileNameStr = fileNameArr.constData();

    if(!QFile::exists(fileName))
        return 0;

    cout << fileNameArr.data() << '\n'
            << fileNameStr << endl;

    ifstream ifs;
    ifs.open(fileNameStr);
    if (!ifs)
      return 0;
    cout << "OK" << endl;

    return 0;
}


On Windows I get two (identical) lines with broken Cyrillic characters and no "OK"
On Linux I get two (identical) correct lines and "OK".

Any ideas?


-- 
Regards,
Konstantin



More information about the Qt-interest-old mailing list