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

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

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: Неправильно отображается русский текст  (Прочитано 12858 раз)
NickB53
Гость
« : Октябрь 12, 2013, 10:37 »

Что надо сделать чтобы русские буквы отображались правильно из такого кода:
QLabel *label;
label->setText("Руский текст");
 Среда разработки = VS2010, Win7 32 bit.

Использовать транслятор неохота да и незачем, т.к. программы для внутреннего использования (тестирование прошивки микропроцессора и т.п).
Спасибо
Записан
gil9red
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1805



Просмотр профиля WWW
« Ответ #1 : Октябрь 12, 2013, 10:41 »

QTextCodec::setCodecForCStrings(QTextCodec::codecForName("cp1251"))
Это зависит от того в какой кодировки ваши файлы с кодом Улыбающийся
Записан

LisandreL
Птица говорун
*****
Offline Offline

Сообщений: 984


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


Просмотр профиля
« Ответ #2 : Октябрь 12, 2013, 11:03 »

Но лучше сразу в utf-8 исходники переводить. Всё равно в Qt5 это единственный вариант.
Записан
NickB53
Гость
« Ответ #3 : Октябрь 12, 2013, 11:11 »

А  как это можно (преобразовать исходники в UTF-8) в среде VC2010
Записан
Bepec
Гость
« Ответ #4 : Октябрь 12, 2013, 11:35 »

VS2010 спокойно кушает UTF 8. Только преобразовывать сама не умеет. У меня под это имеется консольная программка, недавно написал. Тупо H, CPP переводит в UTF8 Ж)
Записан
sergek
Гипер активный житель
*****
Offline Offline

Сообщений: 872


Мы должны приносить пользу людям.


Просмотр профиля
« Ответ #5 : Октябрь 12, 2013, 14:07 »

А  как это можно (преобразовать исходники в UTF-8) в среде VC2010
http://anton-pribora.ru/projects/recoder/
BOM в файлах, которые кушает программа, удаляйте, в противном случае можно поиметь лишний гимор Подмигивающий
Записан

Qt 5.13.0 Qt Creator 5.0.1
Win10, Ubuntu 20.04
NickB53
Гость
« Ответ #6 : Октябрь 12, 2013, 19:21 »

Спасибо
Записан
Fregloin
Супер
******
Offline Offline

Сообщений: 1025


Просмотр профиля
« Ответ #7 : Октябрь 12, 2013, 20:15 »

я всегда использую подход типа
label->setText(trUtf8("Кириллица"));
Записан
gil9red
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1805



Просмотр профиля WWW
« Ответ #8 : Октябрь 12, 2013, 20:40 »

Но лучше сразу в utf-8 исходники переводить. Всё равно в Qt5 это единственный вариант.
Предположил, что автор работает на винде, а там по дэфолту 1251 кодировка Улыбающийся

NotePad++ позволяет легко кодировать файлы ))
И при конвертировании в utf можно будет выбрать кодировать ли с BOM )
Сам им пользуюсь, так как:
1. работаю на винде
2. файлы с кодом держу в utf8
Записан

lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #9 : Октябрь 13, 2013, 11:48 »

открой пример из поставки Qt
examples\tools\codecs
там редактор с возможностью перекодировать файлы
Записан

Юра.
gil9red
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1805



Просмотр профиля WWW
« Ответ #10 : Октябрь 13, 2013, 20:16 »

Не знал, про этот пример =(
Спасибо, очень интересен! Улыбающийся

Кст, utf8 он сохраняет без BOM Улыбающийся
Записан

LisandreL
Птица говорун
*****
Offline Offline

Сообщений: 984


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


Просмотр профиля
« Ответ #11 : Октябрь 13, 2013, 21:19 »

Предположил, что автор работает на винде, а там по дэфолту 1251 кодировка
Свежие криэйторы по умолчанию utf8 ставят (хотя раньше тоже системную кодировку ставили). Про VS не в курсе.

я всегда использую подход типа
label->setText(trUtf8("Кириллица"));
К слову в Qt5 упразднили trUtf8.

NotePad++ позволяет легко кодировать файлы
Пакетного преобразования вроде нет, а если проект уже есть и большой, то по одному файлу перекодировать как-то уныло. 
Записан
Fregloin
Супер
******
Offline Offline

Сообщений: 1025


Просмотр профиля
« Ответ #12 : Октябрь 17, 2013, 09:45 »

на счёт упразднили trUtf8 не знаю, но у меня оно работает в 5м Qt...
Т.к. сейчас веду разработку временно под виндой, то все работает как надо именно с trUtf8.
Записан
LisandreL
Птица говорун
*****
Offline Offline

Сообщений: 984


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


Просмотр профиля
« Ответ #13 : Октябрь 17, 2013, 10:43 »

на счёт упразднили trUtf8 не знаю, но у меня оно работает в 5м Qt...
Т.к. сейчас веду разработку временно под виндой, то все работает как надо именно с trUtf8.
Ну не совсем правильно выразился.
Пока что он имеется, но указан как QT_DEPRECATED и в документации находится в Obsolete Members for QObject.
Записан
Alexu007
Гость
« Ответ #14 : Ноябрь 08, 2013, 07:12 »

QTextCodec::setCodecForCStrings(QTextCodec::codecForName("cp1251"))
Это зависит от того в какой кодировки ваши файлы с кодом Улыбающийся

Только надо добавить #include <QTextCodec>, иначе ругается при компиляции. Пустячок, а неприятно, пришлось тратить время на поиски ошибки.

Это можна добавить и в main.cpp, и в widget.cpp в конструктор - работает и так и так. А куда правильнее?
Записан
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  


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