Russian Qt Forum

Qt => Интернационализация, локализация => Тема начата: NiiLit от Сентябрь 27, 2007, 15:43



Название: [QT4.3.0][VMS2005][Windows] русская кодировка, проблемы
Отправлено: NiiLit от Сентябрь 27, 2007, 15:43
пару дней на QT. не ругать!!!

вопрос: откомпилированное приложение ".exe" в винде. все в иероглифах. как исправить?
*где поставить, изменить или ...


зы: типа того:  ??: ???????


Название: Re: [QT4.3.0][VMS2005][Windows] русская кодировка, проблемы
Отправлено: Dodge от Сентябрь 27, 2007, 16:08
Смотри в асистенте QTextCodec


Название: Re: [QT4.3.0][VMS2005][Windows] русская кодировка, проблемы
Отправлено: QCasper от Сентябрь 27, 2007, 16:15
замени все свои тексты "your text" на QString::fromLocal8Bit("your text"). Это так называемое решение "чтоб работало", но это не по джедайски. А по джедайски надо все тексты писать на аглицком, заключая их в tr("your text"), и пользоваться приемами интернационализации1.

1. C++ GUI Programming with Qt 4 By Jasmin Blanchette, Mark Summerfield. Chapter 17.


Название: Re: [QT4.3.0][VMS2005][Windows] русская кодировка, проблемы
Отправлено: Hellraiser от Сентябрь 27, 2007, 17:20
Вставить в main() (можно самой первой) строку:
Код:
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("CP1251"));


Название: Re: [QT4.3.0][VMS2005][Windows] русская кодировка, проблемы
Отправлено: Вячеслав от Сентябрь 27, 2007, 17:22
Вставить в main() (можно самой первой) строку:
Код:
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("CP1251"));
И долго вспоминать по матери автора софтины,если на компе нет кодовой страницы 1251.....


Название: Re: [QT4.3.0][VMS2005][Windows] русская кодировка, проблемы
Отправлено: NiiLit от Сентябрь 27, 2007, 17:22
всем сенгс

QString::fromLocal8Bit("your text")
работает


в tr() все занесено...

читаю  главу 17


Название: Re: [QT4.3.0][VMS2005][Windows] русская кодировка, проблемы
Отправлено: Hellraiser от Сентябрь 27, 2007, 17:25
Вставить в main() (можно самой первой) строку:
Код:
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("CP1251"));
И долго вспоминать по матери автора софтины,если на компе нет кодовой страницы 1251.....
На Винде нет кодовой страницы 1251? Тогда это мертвая винда  :)
А если серьезно, когда речь идет о разработке действительно кросплатформенного и мультиязычного приложения, то без tr() нечего делать. А если (см. топик) речь идет конкретно о Винде - вполне достаточно установить кодек для Сишных строк.


Название: Re: [QT4.3.0][VMS2005][Windows] русская кодировка, проблемы
Отправлено: NiiLit от Сентябрь 27, 2007, 17:46
Вставить в main() (можно самой первой) строку:
Код:
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("CP1251"));
И долго вспоминать по матери автора софтины,если на компе нет кодовой страницы 1251.....
На Винде нет кодовой страницы 1251? Тогда это мертвая винда  :)
А если серьезно, когда речь идет о разработке действительно кросплатформенного и мультиязычного приложения, то без tr() нечего делать. А если (см. топик) речь идет конкретно о Винде - вполне достаточно установить кодек для Сишных строк.

со строкой в не заработало!)_


Название: Re: [QT4.3.0][VMS2005][Windows] русская кодировка, проблемы
Отправлено: Hellraiser от Сентябрь 27, 2007, 17:50
Не заработало ? ???


Название: Re: [QT4.3.0][VMS2005][Windows] русская кодировка, проблемы
Отправлено: NiiLit от Сентябрь 27, 2007, 17:52
Не заработало ? ???
неа  :-[ ...

все равно СЕНГС


Название: Re: [QT4.3.0][VMS2005][Windows] русская кодировка, проблемы
Отправлено: Hellraiser от Сентябрь 27, 2007, 17:55
Покажи кусочек кода, строки которого криво отображаются.


Название: Re: [QT4.3.0][VMS2005][Windows] русская кодировка, проблемы
Отправлено: nanit от Сентябрь 28, 2007, 09:03
В своём коде я делаю так:

int main(int argc, char *argv[])
{
   QApplication app(argc, argv);

#ifdef Q_OS_WIN32
   QTextCodec *codec = QTextCodec::codecForName("Windows-1251");
   QTextCodec::setCodecForTr( codec );
   QTextCodec::setCodecForCStrings( codec );
   QTextCodec::setCodecForLocale( codec );
#endif

   MainWindow wnd;
   wnd.show();
   app.connect(&app, SIGNAL(lastWindowClosed()), &app, SLOT(quit()));
   return app.exec();
}

Возможно решение не очень, но оно работает.


Название: Re: [QT4.3.0][VMS2005][Windows] русская кодировка, проблемы
Отправлено: Пантер от Сентябрь 28, 2007, 18:17
А так?
QTextCodec *codec = QTextCodec::codecForName("CP1251");
И хорошо бы проверить codec на 0 после данного действия.


Название: Re: [QT4.3.0][VMS2005][Windows] русская кодировка, проблемы
Отправлено: nanit от Сентябрь 28, 2007, 21:13
Я делал по http://doc.trolltech.com/4.3/qtextcodec.html#details (http://doc.trolltech.com/4.3/qtextcodec.html#details), а CP1251 не пробовал.