LINUX.ORG.RU

Астрологи объявили месяц войны со строками в си и производных языках?

PolarFox ★★★★★
()
Ответ на: комментарий от Dragon59

прошу прощения, но я новичок в этом всем. Вот, например, мне надо вывести символ ☺ в plainTextEdit. Если можно, опишите подробней как это сделать.

vince99
() автор топика
Ответ на: комментарий от Dragon59

setText(«☺»)

тоже выводит лобуду. Ну да ладно, я в юникоде вроде нужное нашел. Всем спасибо.

vince99
() автор топика
Ответ на: комментарий от Dragon59

setText(«☺»)

Будет исользован QTextCodec::codecForCStrings(), который по умолчанию Latin1, а не UTF-8.

setText(QString::fromUtf8("☺"))

Только это будет работать, есть исходный файл сохранён в UTF-8.

Dendy ★★★★★
()
Ответ на: комментарий от Dendy

Ничего, вот придёт Qt5 и исходник будет считаться в UTF-8 :}

Deleted
()

ASCII символы в PlainTextEdit в Qt4
Собственно и вопрос - как выводить. Как в С++ - char(187), например, не работает. Есть QChar(187), но это выводит в юникоде, а там 65000 символов - мне это много. Спасибо заранее.

В ASCII всего 128 символов. 128 < 187. Ты что-то перепутал.

Deleted
()
Последнее исправление: Deleted (всего исправлений: 1)
Ответ на: комментарий от Deleted

Плюсую!

А вообще:

main()
{
   QTextCodec::setCodecForTr(QTextCodec::codecForName("Тут имя кодировки, с которой сохранены исходники."));
}
А дальше весь текст заворачиваешь в tr.
QString test(QObject::tr("Тут текст ☺"));

alpha4
()
Ответ на: комментарий от alpha4

Игры с кодировками исходников до добра не доводят. Вообще QTextCodec::setCodecFor*() это скорее костыль для обратной совместимости.

Dendy ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.