Ни с массивом char, ни с тупо QByteArray ничего не вышло, хотя метод canEncode() класса QTextCodec уверяет, что должно было выйти:
QString RDataItemModel::fromUtf8(const QString str)
{
return QString::fromUtf8(str.toStdString().c_str());
}
QString RDataItemModel::fromUtf8(const QString str)
{
QTextCodec * c = QTextCodec::codecForName("UTF-8");
if(c->canEncode(str))
{
const QByteArray ar = QVariant(str).toByteArray();
return c->toUnicode(ar);
}
else
qDebug() << "!!!!"; //Ни разу не выдал
}
Везде результат одинаковый, английские буквы не трогает, а русские превращает в крякозябры
Нашел возможный корень зол:
Записать в utf8 тоже не получается, пробовал так:
QVariant( this->itemFromIndex(newIndex)->text().toUtf8() ).toString();