Gremlin92
@Gremlin92
Целеустремленный

Преобразовать из кодировки 866 в 1251 или utf8?

Парсю дбф столкнулся с тем что символы в строке на кириллице в векторе v и кодировка 866 использую код ниже для перегона строки из 1251 в 866 и сравниваю, но там символы три штуки одинакового кода(посмотрел в дебаггере) видимо что-то не то. Вот код:
QString dnp="ДНП";
        QByteArray ba = dnp.toLocal8Bit();
        const char *c_str2 = ba.data();
        QString buf = QTextCodec::codecForName("CP1251")->toUnicode(c_str2);
        delete[] c_str2;
        dnp = QTextCodec::codecForName("IBM-866")->fromUnicode(buf).data();
        if(strcmp(v[5].c_str(),dnp.toStdString().c_str())==0)
            qDebug()<<v;

Мне бы перегнать вектор v в utf-8 либо 1251, а дальше я справлюсь
  • Вопрос задан
  • 108 просмотров
Решения вопроса 1
Gremlin92
@Gremlin92 Автор вопроса
Целеустремленный
Так заработало
std::string dnp2 = QTextCodec::codecForName("IBM-866")->fromUnicode(buf).data();
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы