Russian Qt Forum

Qt => Интернационализация, локализация => Тема начата: Normann от Август 07, 2010, 16:24



Название: Отображение строковых констант в русской кодировке без преобразования
Отправлено: Normann от Август 07, 2010, 16:24
Столкнулся с такой проблемой: код написан в win-1251, в этом коде в текстовая метка должна отобразить текст (setText()) строковой константы содержащей русский текст, но вместо русского текста она показала абракадабру. Прочитал что все классы работающие с отображением текста работают в юникоде. Пробовал исходный код перекодировать в различные варианты юникода, utf8 не дал желаемого результата, а при кодировках с 16-разрядной и более шириной символа компилятор (g++) сообщает что не понимает содержимого. Вопрос заключается в следующем, можно ли отображать русские символы не прибегая к обертыванию строк в функции пребразования (типа tr()) и не меняя компилятор (и соответственно кодировку исходников, разве что только в utf8)?


Название: Re: Отображение строковых констант в русской кодировке без преобразования
Отправлено: Sancho_s_rancho от Август 07, 2010, 17:04
Столкнулся с такой проблемой: код написан в win-1251, в этом коде в текстовая метка должна отобразить текст (setText()) строковой константы содержащей русский текст, но вместо русского текста она показала абракадабру. Прочитал что все классы работающие с отображением текста работают в юникоде. Пробовал исходный код перекодировать в различные варианты юникода, utf8 не дал желаемого результата, а при кодировках с 16-разрядной и более шириной символа компилятор (g++) сообщает что не понимает содержимого. Вопрос заключается в следующем, можно ли отображать русские символы не прибегая к обертыванию строк в функции пребразования (типа tr()) и не меняя компилятор (и соответственно кодировку исходников, разве что только в utf8)?
Ну для пользовательских текстовок стандартное средство tr(). Почему вы его избегаете мне не понятно. Ваше дело.
Смотрите в сторону void QTextCodec::setCodecForCStrings ( QTextCodec * codec )   [static]


Название: Re: Отображение строковых констант в русской кодировке без преобразования
Отправлено: Normann от Сентябрь 03, 2010, 07:53
Ну для пользовательских текстовок стандартное средство tr(). Почему вы его избегаете мне не понятно. Ваше дело.
Смотрите в сторону void QTextCodec::setCodecForCStrings ( QTextCodec * codec )   [static]

Благодарствую, то что нужно.


Название: Re: Отображение строковых констант в русской кодировке без преобразования
Отправлено: break от Сентябрь 03, 2010, 11:04
У нас в проекте все исходники в UTF8, для русских символов используем QString::fromUTF8() - например при выводе в консоль, больше ничего практически не используем.