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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Крякозябры в месседж боксах  (Прочитано 7787 раз)
time.h
Гость
« : Июнь 28, 2011, 11:37 »

При использовании русского языка в QMessageBox выводит крякозябры.Работаю под ubutnu 11.04.В качестве кодировки файла cpp установлена UTF - 8
Записан
LisandreL
Птица говорун
*****
Offline Offline

Сообщений: 984


Надо улыбаться


Просмотр профиля
« Ответ #1 : Июнь 28, 2011, 11:43 »

А кодеки в программе установлены?
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #2 : Июнь 28, 2011, 11:45 »

time.h, читай мою подпись. Если не понятно, то в поиск, тема уже кучу раз пережевана.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
time.h
Гость
« Ответ #3 : Июнь 28, 2011, 16:33 »

Проблема решилась следующим способом
Код:
    QTextCodec *codec = QTextCodec::codecForName("utf-8");
    QTextCodec::setCodecForCStrings(codec);
Записан
BRE
Гость
« Ответ #4 : Июнь 28, 2011, 16:51 »

Вместе с этими строками ты проблему не решил, а добавил!

Если уж исходники в utf-8, то и использовал бы QObject::trUtf8. Все ж проблем меньше будет.
Записан
LisandreL
Птица говорун
*****
Offline Offline

Сообщений: 984


Надо улыбаться


Просмотр профиля
« Ответ #5 : Июнь 28, 2011, 18:10 »

Вместе с этими строками ты проблему не решил, а добавил!
И в чём он добавил проблему при условии, что программа точно не будет мультиязычной?
Записан
BRE
Гость
« Ответ #6 : Июнь 28, 2011, 19:30 »

И в чём он добавил проблему при условии, что программа точно не будет мультиязычной?
Ну, при условии что программа точно не будет мультиязычной, будет разрабатываться на одной платформе, одним человеком и для себя, то проблем конечно никаких.
Самое забавное, что это решение применяют совершенно не разобравшись "а что же потом будет происходить?". Вспоминается анекдот про не работающую машину и советы - постучать по колесу и протереть лобовое стекло.
Записан
LisandreL
Птица говорун
*****
Offline Offline

Сообщений: 984


Надо улыбаться


Просмотр профиля
« Ответ #7 : Июнь 28, 2011, 20:53 »

Самое забавное, что это решение применяют совершенно не разобравшись "а что же потом будет происходить?".
Ну, проблемы, которые всплывут у мультиязычной (даже потенциально) программы я представляю.
Записан
lolbla2
Гость
« Ответ #8 : Февраль 14, 2012, 20:15 »

Проблема решилась следующим способом
Код:
    QTextCodec *codec = QTextCodec::codecForName("utf-8");
    QTextCodec::setCodecForCStrings(codec);

Мне это не помогло, кто подскажет что делать((?

После этого кода вместо таких крякозябр:


получились чуть посимпотичнее, но тоже не айс:
Записан
sudo
Гость
« Ответ #9 : Февраль 14, 2012, 20:23 »

Код:
  // Установка локали по умолчанию
  QLocale russianLocale(QLocale::Russian, QLocale::RussianFederation);
  QLocale::setDefault(russianLocale);

  // Установка текстовых кодеков
  QTextCodec* defaultCodec = QTextCodec::codecForName("UTF-8");
  QTextCodec::setCodecForTr(defaultCodec);
  QTextCodec::setCodecForLocale(defaultCodec);
  QTextCodec::setCodecForCStrings(defaultCodec);

  // Устанока QTranslator для Qt на текущую локаль
  QTranslator* qtTranslator = new QTranslator(QCoreApplication::instance());
  qtTranslator->load("qt_ru_RU", QLibraryInfo::location(QLibraryInfo::TranslationsPath));
  QCoreApplication::instance()->installTranslator(qtTranslator);
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #10 : Февраль 14, 2012, 20:49 »

Проблема решилась следующим способом
Код:
    QTextCodec *codec = QTextCodec::codecForName("utf-8");
    QTextCodec::setCodecForCStrings(codec);

Мне это не помогло, кто подскажет что делать((?
в таком случае файл исходного кода тоже должен быть в кодировке UTF-8
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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