Название: Qt 5.x - если исходники в кодировке Win-1251 Отправлено: Maxz от Июнь 22, 2013, 23:49 Собрался таки с духом перейти на Qt 5.0.2 c Qt 4.8.
Стал пересобирать проект (большой), напоролся на несколько костылей, но они решились быстро. Но выяснилась проблема - как выяснилось, с 5-ой версии больше не будут поддерживаться исходники в любой иной кодировке, кроме как в юникоде (тут написано - http://www.prog.org.ru/index.php?topic=24187.msg172513#msg172513 ). А мне это как-то влом - перегонять кучу файлов (исходники в Win-1251) в юникод, а потом еще маяться с обратным перекодированием (пользуюсь старым текстовым редактором, он UTF-8 плохо переваривает). Или пользоваться лингвистом (проект чисто для русскоязычных). Решение проблемы собственно такое: Где-то объявляем глобальную переменную и функцию для перекодирования: Код: extern QTextCodec *_codec; //! кодек для программирования Далее реализация: Код: QTextCodec *_codec=QTextCodec::codecForName("Windows-1251"); Ну и далее по всему текстку вместо использования Qt-шной tr() делаем нечто такое: Код: QString _text=FTr("Мой текст на русском"); Может быть, кому-то пригодится Название: Re: Qt 5.x - если исходники в кодировке Win-1251 Отправлено: kambala от Июнь 23, 2013, 00:01 костыль ужаснейший. если вдруг тому, кто использует подобный метод, понадобится перевести программу на другой язык, то он не сможет этого сделать. намного проще перейти на юникод (на дворе 2013 год между прочим), сконвертировать все файлы одним махом (под виндой должно существовать что-то типа iconv) и установить современный текстовый редактор (например sublime text или notepad++).
еще и переменную в метод передаешь по значению вместо константной ссылки. Название: Re: Qt 5.x - если исходники в кодировке Win-1251 Отправлено: sergek от Июнь 23, 2013, 12:04 Это решает все проблемы:
Цитировать I highly recommend choosing the former option: use UTF-8 in your source code. http://www.macieira.org/blog/2012/05/source-code-must-be-utf-8-and-qstring-wants-it/ (http://www.macieira.org/blog/2012/05/source-code-must-be-utf-8-and-qstring-wants-it/)Это поможет: http://anton-pribora.ru/recoder/ (http://anton-pribora.ru/recoder/) |