Русская кодировка в Qt, Не видны буквы... |
Здравствуйте, гость ( Вход | Регистрация )
Русская кодировка в Qt, Не видны буквы... |
++Norton++ |
12.2.2009, 14:58
Сообщение
#1
|
Студент Группа: Участник Сообщений: 98 Регистрация: 5.10.2008 Пользователь №: 380 Спасибо сказали: 0 раз(а) Репутация: 1 |
Есть такой вот такие куски кода:
и
В первом случае в statusLabel (label) выводятся нечитаемые символы неизвестной кодировки. Во втором случае в файл записывается только "This is test: ". Слово "Тест" в него вообще не записывается. Вопрос в том, можно ли как-нибудь это все поправить? |
|
|
SABROG |
12.2.2009, 15:13
Сообщение
#2
|
Профессионал Группа: Участник Сообщений: 1207 Регистрация: 8.12.2008 Из: Russia, Moscow Пользователь №: 446 Спасибо сказали: 229 раз(а) Репутация: 34 |
Вопрос в том в какой кодировке у тебя исходники. Отсюда и плясать.
|
|
|
AD |
12.2.2009, 15:14
Сообщение
#3
|
Профессионал Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: 17 |
В функции main() указать:
В своем коде сделать так:
Скорее всего, поможет! |
|
|
Litkevich Yuriy |
12.2.2009, 15:43
Сообщение
#4
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("Windows-1251")); ///< Для строковых констант Это не для констант, а для внутреннего преобразования QString/QByteArrayи для строк лучше так не задовать кодировку можно так:
для вывода в консоль можно отдельно задать кодировку:
CON_ENCOD - требуемый кодек |
|
|
++Norton++ |
12.2.2009, 16:22
Сообщение
#5
|
Студент Группа: Участник Сообщений: 98 Регистрация: 5.10.2008 Пользователь №: 380 Спасибо сказали: 0 раз(а) Репутация: 1 |
Спасибо!
Только еще один вопрос. Ругается на строку:
Пишет:
Что не так? |
|
|
Litkevich Yuriy |
12.2.2009, 16:23
Сообщение
#6
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
|
|
|
++Norton++ |
12.2.2009, 16:29
Сообщение
#7
|
Студент Группа: Участник Сообщений: 98 Регистрация: 5.10.2008 Пользователь №: 380 Спасибо сказали: 0 раз(а) Репутация: 1 |
А как же тогда можно преобразовать текст с помощью tr() из LineEdit'a (phormulEdit)?
|
|
|
Litkevich Yuriy |
12.2.2009, 16:37
Сообщение
#8
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
от кого унаследован Widget?
приведи объявление этого класса |
|
|
++Norton++ |
12.2.2009, 16:44
Сообщение
#9
|
Студент Группа: Участник Сообщений: 98 Регистрация: 5.10.2008 Пользователь №: 380 Спасибо сказали: 0 раз(а) Репутация: 1 |
Вот объявление (в widget.cpp):
Вот в widget.h:
Сообщение отредактировал ++Norton++ - 12.2.2009, 16:47 |
|
|
Litkevich Yuriy |
12.2.2009, 16:51
Сообщение
#10
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
Вот объявление (в widget.cpp): это не объявление, а реализацияtr(ui->phormulEdit->text()) << i << tr(ui->taskEdit->text()); к стати говоря, в функцию tr оборачивай только строковые константы, как здесь:tr("№")
|
|
|
Текстовая версия | Сейчас: 13.1.2025, 23:49 |