Russian Qt Forum

Qt => Интернационализация, локализация => Тема начата: mvdteam от Декабрь 03, 2008, 18:39



Название: Все теже кодировки у меня Utf-8 (Стандартный пример qtdemo)
Отправлено: 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.

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

Как быть?




Название: Re: Все теже кодировки у меня Utf-8 (Стандартный пример qtdemo)
Отправлено: Tonal от Декабрь 04, 2008, 11:53
А ты уверен, что кодировка исходника именно UTF-8?


Название: Re: Все теже кодировки у меня Utf-8 (Стандартный пример qtdemo)
Отправлено: mvdteam от Декабрь 04, 2008, 12:26
Таки уверен.

(http://77.123.213.75:777/123.JPG)


Название: Re: Все теже кодировки у меня Utf-8 (Стандартный пример qtdemo)
Отправлено: BRE от Декабрь 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") );
 


Название: Re: Все теже кодировки у меня Utf-8 (Стандартный пример qtdemo)
Отправлено: pastor от Декабрь 04, 2008, 16:22
А в общем  это дурной стиль писать на русском. Для этого есть Qt Linguist


Название: Re: Все теже кодировки у меня Utf-8 (Стандартный пример qtdemo)
Отправлено: mvdteam от Декабрь 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") );
 
В результате все что распозновалось - стало в кракозябрах. Тоисть включать это все таки нужно.

Все тот же результат.
(http://77.123.213.75:777/124.jpg)


Название: Re: Все теже кодировки у меня Utf-8 (Стандартный пример qtdemo)
Отправлено: BRE от Декабрь 04, 2008, 16:41
Выложи исправленный тобой файл.


Название: Re: Все теже кодировки у меня Utf-8 (Стандартный пример qtdemo)
Отправлено: mvdteam от Декабрь 04, 2008, 16:52
Выложил


Название: Re: Все теже кодировки у меня Utf-8 (Стандартный пример qtdemo)
Отправлено: BRE от Декабрь 04, 2008, 17:36
Странно, а у меня все работает, так как описал выше.  ???


Название: Re: Все теже кодировки у меня Utf-8 (Стандартный пример qtdemo)
Отправлено: mvdteam от Декабрь 04, 2008, 18:06
Странно, а у меня все работает, так как описал выше.  ???

А не будет трудно проэкт за-архивированый выложить?


Название: Re: Все теже кодировки у меня Utf-8 (Стандартный пример qtdemo)
Отправлено: BRE от Декабрь 04, 2008, 18:13
Странно, а у меня все работает, так как описал выше.  ???

А не будет трудно проэкт за-архивированый выложить? или на мыло spamers@i.ua
Бросаю на мыло.


Название: Re: Все теже кодировки у меня Utf-8 (Стандартный пример qtdemo)
Отправлено: mvdteam от Декабрь 04, 2008, 18:48
to BRE

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

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

ЗЫ: Пытаюсь сравнить и выяснить причину.


Название: Re: Все теже кодировки у меня Utf-8 (Стандартный пример qtdemo)
Отправлено: lit-uriy от Декабрь 04, 2008, 18:58
UTF8-UNIX
UTF8-DOS
таких кодировок в принципе не существует, предположу, что приписки означают код перевода строки.


Название: Re: Все теже кодировки у меня Utf-8 (Стандартный пример qtdemo)
Отправлено: mvdteam от Декабрь 05, 2008, 00:08
Я в догадках.!
menucontent.cpp - BRE вариант. UTF8-UNIX
(http://77.123.213.75:777/1.jpg)
В этом варианте все ОК.

menucontent2.cpp - Мой вариант. UTF8-UNIX
(http://77.123.213.75:777/2.jpg)
Тут непонятка.


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

Я так понимаю что-то банально простое  :-\

Прикрепленные файлы открывать notepad или WordPad. (Видно разницу).
ЗЫ: Может это у меня одного, такие странности? (не подумайте ничего плохого).


Название: Re: Все теже кодировки у меня Utf-8 (Стандартный пример qtdemo)
Отправлено: mvdteam от Декабрь 05, 2008, 12:16
Проблема найдена.

(http://77.123.213.75:777/3.jpg)

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

Zero Width No-break Space - EF BB BF