Кодировки в QT, Не работает отображение русских букв |
Здравствуйте, гость ( Вход | Регистрация )
Кодировки в QT, Не работает отображение русских букв |
Гость_Alex_* |
7.1.2009, 19:39
Сообщение
#1
|
Гости |
Кодек назначаю
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8")); и при сборке имею main.cpp:15: ошибка: неполный тип ‘QTextCodec’ использован во вложенном спецификаторе имени Без кодека никакие русские буквы в кодировке UTF-8 в QLineEdit на отображаются, только барабер какой-то. Буду признателен за помощь - Qt только осваиваю. |
|
|
void* |
7.1.2009, 19:45
Сообщение
#2
|
Программист-самоучка Группа: Участник Сообщений: 429 Регистрация: 4.6.2008 Пользователь №: 193 Спасибо сказали: 28 раз(а) Репутация: 3 |
а чуть больше кода можешь показать?
|
|
|
Alex69z |
7.1.2009, 19:51
Сообщение
#3
|
Студент Группа: Новичок Сообщений: 15 Регистрация: 7.1.2009 Пользователь №: 480 Спасибо сказали: 0 раз(а) Репутация: 0 |
int main(int argc, char * argv[], char * env[]){
QApplication app(argc,argv,env); QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8")); MyWidget * widget = new MyWidget; widget->show(); return app.exec(); } |
|
|
molchanoviv |
7.1.2009, 21:02
Сообщение
#4
|
Старейший участник Группа: Сомодератор Сообщений: 597 Регистрация: 18.7.2008 Из: Саратов Пользователь №: 238 Спасибо сказали: 41 раз(а) Репутация: 5 |
А класс? Класс покажи.
А QLineEdit как используется Отображаешь ты в ней текст так: QLineEdit::setText(QString);? В QString если я не ошибаюсь по дефолту идет кодировка utf-8. Небольшая заметка: Я лучше бы использовал QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8")); А все строки используемые в программе писал бы так tr("строка") |
|
|
Alex69z |
7.1.2009, 21:24
Сообщение
#5
|
Студент Группа: Новичок Сообщений: 15 Регистрация: 7.1.2009 Пользователь №: 480 Спасибо сказали: 0 раз(а) Репутация: 0 |
QLineEdit используется как элемент формы MyWidget. В него вводится текст запроса для MySQL. В MyWidget есть таблица для отображения результатов запроса - в ней тоже барабер. MySQL настроен на хранение данных в кодировке UTF-8. После установки Qt все ее диалоги, где есть русские (UTF-8 ) буквы показывают иероглифы. Подскажите, плз, как правильно настраивать и использовать фичи локализации в Qt.
С этим справился main.cpp:15: ошибка: неполный тип ‘QTextCodec’ использован во вложенном спецификаторе имени через #include <QTextCodec> |
|
|
molchanoviv |
7.1.2009, 21:27
Сообщение
#6
|
Старейший участник Группа: Сомодератор Сообщений: 597 Регистрация: 18.7.2008 Из: Саратов Пользователь №: 238 Спасибо сказали: 41 раз(а) Репутация: 5 |
Цитата После установки Qt все ее диалоги, где есть русские ( UTF-8 ) буквы показывают иероглифы. Всмысле все надписи на виджете показываются кракозябрами? Тогда может быть исходники в какой-то другой кодировке? Сообщение отредактировал molchanoviv - 7.1.2009, 21:27 |
|
|
Alex69z |
7.1.2009, 21:34
Сообщение
#7
|
Студент Группа: Новичок Сообщений: 15 Регистрация: 7.1.2009 Пользователь №: 480 Спасибо сказали: 0 раз(а) Репутация: 0 |
Не все. Только русскоязычные. Все, что латинницей написано - выводится нормально. Исходники штатные, с сайта Trolltech. В документации ничего не нашел про опции поддержки локализации при сборке/установке Qt.
|
|
|
molchanoviv |
7.1.2009, 21:36
Сообщение
#8
|
Старейший участник Группа: Сомодератор Сообщений: 597 Регистрация: 18.7.2008 Из: Саратов Пользователь №: 238 Спасибо сказали: 41 раз(а) Репутация: 5 |
А код то покажешь? И все-таки проверь кодировку исходников.
|
|
|
void* |
7.1.2009, 21:45
Сообщение
#9
|
Программист-самоучка Группа: Участник Сообщений: 429 Регистрация: 4.6.2008 Пользователь №: 193 Спасибо сказали: 28 раз(а) Репутация: 3 |
в никсах исходники легко можно конвертнуть в нужную кодировку с помощью iconv
|
|
|
Litkevich Yuriy |
7.1.2009, 21:50
Сообщение
#10
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
Типовой main.cpp:
QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8")); // Для функций перевода tr() указывает кодировку исходников!
|
|
|
Текстовая версия | Сейчас: 29.11.2024, 17:45 |