crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> Русский текст в XML-ки
ruzik
  опции профиля:
сообщение 12.2.2012, 14:48
Сообщение #1


Активный участник
***

Группа: Участник
Сообщений: 254
Регистрация: 23.2.2011
Из: Саратов
Пользователь №: 2436

Спасибо сказали: 2 раз(а)




Репутация:   0  


Здравствуйте, не подскажите как можно правильно отобразить русский текст из XMl-ки, пытался сделать, что-то типа этого:
QString str = domElement.attribute("name",tr("New folder"));
    QTextCodec * codec = QTextCodec::codecForLocale();
    itemModel->setData(newIndex,codec->toUnicode(str.toLatin1()));

Пробовал вместо toLatin1() toLocal8bit() - все тщетно
Заранее спасибо!
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
ruzik
  опции профиля:
сообщение 12.2.2012, 21:42
Сообщение #2


Активный участник
***

Группа: Участник
Сообщений: 254
Регистрация: 23.2.2011
Из: Саратов
Пользователь №: 2436

Спасибо сказали: 2 раз(а)




Репутация:   0  


Ни с массивом 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();
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 27.11.2024, 13:22