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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Отображение строковых констант в русской кодировке без преобразования  (Прочитано 3446 раз)
Normann
Гость
« : Август 07, 2010, 16:24 »

Столкнулся с такой проблемой: код написан в win-1251, в этом коде в текстовая метка должна отобразить текст (setText()) строковой константы содержащей русский текст, но вместо русского текста она показала абракадабру. Прочитал что все классы работающие с отображением текста работают в юникоде. Пробовал исходный код перекодировать в различные варианты юникода, utf8 не дал желаемого результата, а при кодировках с 16-разрядной и более шириной символа компилятор (g++) сообщает что не понимает содержимого. Вопрос заключается в следующем, можно ли отображать русские символы не прибегая к обертыванию строк в функции пребразования (типа tr()) и не меняя компилятор (и соответственно кодировку исходников, разве что только в utf8)?
Записан
Sancho_s_rancho
Гость
« Ответ #1 : Август 07, 2010, 17:04 »

Столкнулся с такой проблемой: код написан в win-1251, в этом коде в текстовая метка должна отобразить текст (setText()) строковой константы содержащей русский текст, но вместо русского текста она показала абракадабру. Прочитал что все классы работающие с отображением текста работают в юникоде. Пробовал исходный код перекодировать в различные варианты юникода, utf8 не дал желаемого результата, а при кодировках с 16-разрядной и более шириной символа компилятор (g++) сообщает что не понимает содержимого. Вопрос заключается в следующем, можно ли отображать русские символы не прибегая к обертыванию строк в функции пребразования (типа tr()) и не меняя компилятор (и соответственно кодировку исходников, разве что только в utf8)?
Ну для пользовательских текстовок стандартное средство tr(). Почему вы его избегаете мне не понятно. Ваше дело.
Смотрите в сторону void QTextCodec::setCodecForCStrings ( QTextCodec * codec )   [static]
Записан
Normann
Гость
« Ответ #2 : Сентябрь 03, 2010, 07:53 »

Ну для пользовательских текстовок стандартное средство tr(). Почему вы его избегаете мне не понятно. Ваше дело.
Смотрите в сторону void QTextCodec::setCodecForCStrings ( QTextCodec * codec )   [static]

Благодарствую, то что нужно.
Записан
break
Гипер активный житель
*****
Offline Offline

Сообщений: 846


Просмотр профиля
« Ответ #3 : Сентябрь 03, 2010, 11:04 »

У нас в проекте все исходники в UTF8, для русских символов используем QString::fromUTF8() - например при выводе в консоль, больше ничего практически не используем.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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