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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Все теже кодировки у меня Utf-8 (Стандартный пример qtdemo)  (Прочитано 9668 раз)
mvdteam
Гость
« : Декабрь 03, 2008, 18:39 »

ОС: WinXP sp2
Среда: MSVC2008
Сборка: Qt 4.4.3 -static

Обьект эксперементов - qtdemo.
main.cpp добавлено
   QTextCodec::setCodecForTr( QTextCodec::codecForName("UTF-8") );
   QTextCodec::setCodecForCStrings( QTextCodec::codecForName("UTF-8") );
   QTextCodec::setCodecForLocale( QTextCodec::codecForName("UTF-8") );

menucontent.cpp изменено
строка 119:         para1 = Colors::contentColor + QLatin1String("Could not load description. Ensure that the documentation for Qt is built.");
изменена на
      para1 = Colors::contentColor + QObject::tr("Не могу загрузить описание. Убедитесь что документация для Qt создана."Подмигивающий

Результат □□ □□□□ □□□□□□□□ □□□□□□□□. □□□□□□□□□ □□□ □□□□□□□□□□□□ □□□ Qt □□□□□□□.

Исходные файлы в кодировке UTF-8.

Из контента файлов Русские символы нормально отображаються.

Как быть?


« Последнее редактирование: Декабрь 04, 2008, 11:15 от mvdteam » Записан
Tonal
Гость
« Ответ #1 : Декабрь 04, 2008, 11:53 »

А ты уверен, что кодировка исходника именно UTF-8?
Записан
mvdteam
Гость
« Ответ #2 : Декабрь 04, 2008, 12:26 »

Таки уверен.

Записан
BRE
Гость
« Ответ #3 : Декабрь 04, 2008, 12:46 »

Таки уверен.
Используй место tr() trUtf8().

И вот это можно не делать:
Код
C++ (Qt)
QTextCodec::setCodecForTr( QTextCodec::codecForName("UTF-8") );
QTextCodec::setCodecForCStrings( QTextCodec::codecForName("UTF-8") );
QTextCodec::setCodecForLocale( QTextCodec::codecForName("UTF-8") );
 
« Последнее редактирование: Декабрь 04, 2008, 13:03 от BRE » Записан
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #4 : Декабрь 04, 2008, 16:22 »

А в общем  это дурной стиль писать на русском. Для этого есть Qt Linguist
Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
mvdteam
Гость
« Ответ #5 : Декабрь 04, 2008, 16:32 »

Таки уверен.
Используй место tr() trUtf8().

И вот это можно не делать:
Код
C++ (Qt)
QTextCodec::setCodecForTr( QTextCodec::codecForName("UTF-8") );
QTextCodec::setCodecForCStrings( QTextCodec::codecForName("UTF-8") );
QTextCodec::setCodecForLocale( QTextCodec::codecForName("UTF-8") );
 

1. trUtf8() - не дает результатов.
Код
C++ (Qt)
   if (para1.isEmpty())
para1 = Colors::contentColor + QObject::trUtf8("Не могу загрузить описание. Убедитесь что документация для Qt создана.");
 

2. Отключение
Код
C++ (Qt)
QTextCodec::setCodecForTr( QTextCodec::codecForName("UTF-8") );
QTextCodec::setCodecForCStrings( QTextCodec::codecForName("UTF-8") );
QTextCodec::setCodecForLocale( QTextCodec::codecForName("UTF-8") );
 
В результате все что распозновалось - стало в кракозябрах. Тоисть включать это все таки нужно.

Все тот же результат.
Записан
BRE
Гость
« Ответ #6 : Декабрь 04, 2008, 16:41 »

Выложи исправленный тобой файл.
Записан
mvdteam
Гость
« Ответ #7 : Декабрь 04, 2008, 16:52 »

Выложил
« Последнее редактирование: Декабрь 04, 2008, 16:57 от mvdteam » Записан
BRE
Гость
« Ответ #8 : Декабрь 04, 2008, 17:36 »

Странно, а у меня все работает, так как описал выше.  Непонимающий
Записан
mvdteam
Гость
« Ответ #9 : Декабрь 04, 2008, 18:06 »

Странно, а у меня все работает, так как описал выше.  Непонимающий

А не будет трудно проэкт за-архивированый выложить?
« Последнее редактирование: Декабрь 04, 2008, 18:24 от mvdteam » Записан
BRE
Гость
« Ответ #10 : Декабрь 04, 2008, 18:13 »

Странно, а у меня все работает, так как описал выше.  Непонимающий

А не будет трудно проэкт за-архивированый выложить? или на мыло spamers@i.ua
Бросаю на мыло.
Записан
mvdteam
Гость
« Ответ #11 : Декабрь 04, 2008, 18:48 »

to BRE

Уважаемый. Снимаю перед вами шляпу. Улыбающийся
Разница правда в кодировке исходников, они у вас UTF8-UNIX (наверное пишете в *nix-ax) у меня в проэкте UTF8-DOS.

Ваш проэкт нормательно работает в плане кодировок.
Все отображаеться нормально.

ЗЫ: Пытаюсь сравнить и выяснить причину.
Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #12 : Декабрь 04, 2008, 18:58 »

UTF8-UNIX
UTF8-DOS
таких кодировок в принципе не существует, предположу, что приписки означают код перевода строки.
Записан

Юра.
mvdteam
Гость
« Ответ #13 : Декабрь 05, 2008, 00:08 »

Я в догадках.!
menucontent.cpp - BRE вариант. UTF8-UNIX

В этом варианте все ОК.

menucontent2.cpp - Мой вариант. UTF8-UNIX

Тут непонятка.


Что происходит?

Я так понимаю что-то банально простое  В замешательстве

Прикрепленные файлы открывать notepad или WordPad. (Видно разницу).
ЗЫ: Может это у меня одного, такие странности? (не подумайте ничего плохого).
« Последнее редактирование: Декабрь 05, 2008, 00:44 от mvdteam » Записан
mvdteam
Гость
« Ответ #14 : Декабрь 05, 2008, 12:16 »

Проблема найдена.



Этими злополучными байтами оказалась последовательность «EF BB BF», сообщающая программе, работающей с этим файлом в какой кодировке создан файл. Поскольку кодировок существует множество, то разные последовательности в начале файла указывают на тип кодировки. Подробнее об этом написано в статье Byte-order mark (Википедия).

Zero Width No-break Space - EF BB BF
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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