Кривое отображение русского текста при печати |
Здравствуйте, гость ( Вход | Регистрация )
Кривое отображение русского текста при печати |
Rocky |
12.7.2010, 12:25
Сообщение
#1
|
Старейший участник Группа: Участник Сообщений: 530 Регистрация: 22.12.2008 Из: Санкт-Петербург Пользователь №: 463 Спасибо сказали: 22 раз(а) Репутация: 7 |
Всем привет! Помогите плиз разобраться... Дня 3 сижу и ниче не понимаю.. Есть проект. Все исходники сохранены в кодировке UTF-8. В проекте 3 вкладки (tabwidget). На каждой вкладке есть кнопка "бланк" с которой можно распечатать определенные данные. Печатаю так
При загрузке проекта пишу
В итоге на первых двух вкладках вместо русских букв вижу одни квадратики, на 3-й вкладке - все ок. Файлы с исходниками сохранены в UTF-8. Вместо QString("текст") пробовал qApp->tr(""), QString("текст").toAscii(), QString("текст").toStdString().c_str() - при всех вариантах вижу квадратики... В чем могут быть грабли? Qt 4.6.2. + vs 2008. Спасибо! |
|
|
Rocky |
12.7.2010, 13:36
Сообщение
#2
|
Старейший участник Группа: Участник Сообщений: 530 Регистрация: 22.12.2008 Из: Санкт-Петербург Пользователь №: 463 Спасибо сказали: 22 раз(а) Репутация: 7 |
Т.е. даже если я просто в коде пишу такую строку
то на 1 и 2 вкладках прямо в отладчике вижу, что в s записались квадратики.... А на 3-й все ок... Получается что что-то не то с кодировкой исходника чтоли? Кодеки выставляются только один раз.. При загрузке программы.. Странно как-то все. Сообщение отредактировал Rocky - 12.7.2010, 13:37 |
|
|
Litkevich Yuriy |
12.7.2010, 19:56
Сообщение
#3
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
QTextCodec::setCodecForCStrings(QTextCodec::codecForLocale()); QString("воздуха в помещениях,°С") Все исходники сохранены в кодировке UTF-8 не соответствиеЕсли исходники в UTF-8, то просто оборачивай текст в trUtf8, например:
|
|
|
ЙаМайскЫйПчОЛ |
12.7.2010, 22:44
Сообщение
#4
|
Участник Группа: Участник Сообщений: 154 Регистрация: 10.7.2008 Из: СПб Пользователь №: 232 Спасибо сказали: 7 раз(а) Репутация: 5 |
Да простят меня более опытные сотоварищ, я делаю так... QString str = tr("траляля");, вопщем везде вместо "" пишу tr("");
так что если стоит QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8")); то должно быть корректно... Убедись что все исходники в одной кодировке и пересобирите проект... хотя, наверное вы это уже делали... можете прислать исходники попробую собрать у себя Удачи |
|
|
igor_bogomolov |
12.7.2010, 22:56
Сообщение
#5
|
Профессионал Группа: Сомодератор Сообщений: 1215 Регистрация: 22.3.2009 Из: Саратов Пользователь №: 630 Спасибо сказали: 235 раз(а) Репутация: 29 |
Цитата(ЙаМайскЫйПчОЛ) Да простят меня более опытные сотоварищ, я делаю так... QString str = tr("траляля");, вопщем везде вместо "" пишу tr(""); Я стараюсь так не делать. И так тоже Цитата(Litkevich Yuriy) QString s = trUtf8("текст"); Всё в латинице. То что нуждается в переводе оборачивается в tr, если не нуждается в QLatin1String. При этом выставляю QT_NO_CAST_FROM_ASCII, что бы сразу получать по рукам если где-то забыл обернуть |
|
|
Rocky |
15.7.2010, 11:08
Сообщение
#6
|
Старейший участник Группа: Участник Сообщений: 530 Регистрация: 22.12.2008 Из: Санкт-Петербург Пользователь №: 463 Спасибо сказали: 22 раз(а) Репутация: 7 |
Спасибо за trUtf8, на будующее буду знать. Разобрался так: взял файл (3-й таб) в котором после компиляции все было ок, и скопировал туда текст из файла с таб 1 и 2. После этого все заработало. Что-то было не так в самом формате файла... Правда что фиг его знает. =(
|
|
|
Текстовая версия | Сейчас: 29.11.2024, 1:05 |