Russian Qt Forum

Qt => Вопросы новичков => Тема начата: deMax от Октябрь 06, 2016, 10:16



Название: Автовыбор кодировки текстового файла
Отправлено: deMax от Октябрь 06, 2016, 10:16
Нужно определить кодировку файла

Код:
 QByteArray filedata = file.readAll();
    QTextCodec::ConverterState state;
    QTextCodec* codec = QTextCodec::codecForName(fileFormat.toLatin1()); // fileFormat = "UTF-8", "CP-1251"...
    if(!codec) continue;
    const QString text = codec->toUnicode(filedata.constData(), filedata.size(), &state);
    if (state.invalidChars == 0)  return text; }
}

Для файлов с UTF-8 прокатывает, а для cp1251 state.invalidChars == количеству русских символов, хотя считал строку правильно.