Russian Qt Forum
Октябрь 02, 2024, 05:32 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Проблемы с кодировкой  (Прочитано 5633 раз)
Maxim
Гость
« : Июль 21, 2009, 11:13 »

Сам файл с кодом в UTF-8.
Код:
	userModel = new QSqlTableModel();
userModel->setTable("User");
userModel->setEditStrategy(QSqlTableModel::OnRowChange);
userModel->setHeaderData(0, Qt::Horizontal, QObject::tr("ID"));
userModel->setHeaderData(1, Qt::Horizontal, QObject::tr("Имя"));
userModel->setHeaderData(2, Qt::Horizontal, QObject::tr("Фамилия"));
userModel->setHeaderData(3, Qt::Horizontal, QObject::tr("Отчество"));
userModel->setHeaderData(4, Qt::Horizontal, QObject::tr("Рабочее место"));
userModel->setHeaderData(5, Qt::Horizontal, QObject::tr("Сетевое имя"));
Выдаёт вот это:

Что делать с кодировкой?
Записан
BRE
Гость
« Ответ #1 : Июль 21, 2009, 11:21 »

Сам файл с кодом в UTF-8.
Тогда QObject::trUtf8();
Записан
developer
Гость
« Ответ #2 : Июль 21, 2009, 11:24 »

int main(int argc, char *argv[])
 {
     QApplication app(argc, argv);
     QTextCodec::setCodecForTr(QTextCodec::codecForName("cp1251"));
      // или
     QTextCodec::setCodecForCStrings(QTextCodec::codecForName("cp1251"));
 }

Нужно использовать поиск. Ета тема уже была не раз.
Записан
BRE
Гость
« Ответ #3 : Июль 21, 2009, 11:31 »

int main(int argc, char *argv[])
 {
     QApplication app(argc, argv);
     QTextCodec::setCodecForTr(QTextCodec::codecForName("cp1251"));
      // или
     QTextCodec::setCodecForCStrings(QTextCodec::codecForName("cp1251"));
 }

Нужно использовать поиск. Ета тема уже была не раз.
А что по твоему делают эти строки?  Подмигивающий
А почему кодировка CP1251? /*Maxim указал, что кодировка исходника UTF8.*/

[off] Надо не столько поиском пользоваться, а один раз разобраться с кодировками и локализацией в Qt...[/off]
Записан
Maxim
Гость
« Ответ #4 : Июль 21, 2009, 12:08 »

Нет, не получилось. Теперь такой код:
Код:
void DatabaseController::InitUserModel()
{
userModel = new QSqlTableModel();
userModel->setTable("User");
userModel->setEditStrategy(QSqlTableModel::OnRowChange);
userModel->setHeaderData(0, Qt::Horizontal, QObject::tr("ID"));
userModel->setHeaderData(1, Qt::Horizontal, QObject::trUtf8("Имя"));
userModel->setHeaderData(2, Qt::Horizontal, QObject::trUtf8("Фамилия"));
userModel->setHeaderData(3, Qt::Horizontal, QObject::tr("Отчество"));
userModel->setHeaderData(4, Qt::Horizontal, QObject::tr("Рабочее место"));
userModel->setHeaderData(5, Qt::Horizontal, QObject::tr("Сетевое имя"));
}
Код:
int main(int argc, char *argv[])
{
QApplication a(argc, argv);

if (DatabaseController::Init())
{
QTextCodec::setCodecForTr(QTextCodec::codecForName("Utf-8"));
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("Utf-8"));
EquipmentList w;
w.show();
return a.exec();
}
return -1;
}
И в результате:
Записан
BRE
Гость
« Ответ #5 : Июль 21, 2009, 12:13 »

Если кодировка точно Utf8, то попробуй БЕЗ этих строчек (просто trUtf8):
Код
C++ (Qt)
               QTextCodec::setCodecForTr(QTextCodec::codecForName("Utf-8"));
               QTextCodec::setCodecForCStrings(QTextCodec::codecForName("Utf-8"));
 
Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #6 : Июль 21, 2009, 12:42 »

setCodecForCStrings здесь вообще непричём.
Записан

Юра.
SASA
Гость
« Ответ #7 : Июль 23, 2009, 11:54 »

QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8"));

У меня такое чувство, что регистр имеет значение.
Пишу под Win. Пока явно не указал Windows-1250 для tr тоже были кракозяблики.

З.Ы. А может функция DatabaseController::InitUserModel() вызывается из DatabaseController::Init(), тобиш до установки кодеков?
« Последнее редактирование: Июль 23, 2009, 11:58 от SASA » Записан
Alex Custov
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2063


Просмотр профиля
« Ответ #8 : Июль 23, 2009, 13:47 »

http://doc.trolltech.com/4.4/i18n.html
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.084 секунд. Запросов: 23.