Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум на CrossPlatform.RU _ Qt Общие вопросы _ Кириллица в Qt 5.5

Автор: iCast 28.10.2015, 14:40

Доброго всем времени суток! Столкнулся с такой проблемой: требуется считывать руский текст, разбирать его (считывать каждый символ), и производить некие действия, но не работает почему-то кодировка. Устанавливаю в кострукторе для начала:

QTextCodec *codec = QTextCodec::codecForName("UTF-8");
QTextCodec::setCodecForLocale(codec);

Пытаюсь вывести, а на:
 QString str = "Русский текст";
    qDebug() << str;

Выводит:
"\u0420\u0443\u0441\u0441\u043A\u0438\u0439 \u0442\u0435\u043A\u0441\u0442"

Перепробовал уже все, и менял кодировку на СP1251, Windows-1251, кучу функций преобразований с toUtf8, toLatin и т.д.
Разжуйте, как правильно работать с русским текстом.
Qt: 5.5
ОС: Win 8.1

Автор: ViGOur 28.10.2015, 15:03

Откуда считывать? Из файла делается так:

QTextStream stream(&file); 
stream.setCodec("windows-1251");
К тому же не полный у тебя набор, чему нужно установить нжный тебе кодак:
QTextCodec *codec = QTextCodec::codecForName("UTF8");
QTextCodec::setCodecForTr(codec);
QTextCodec::setCodecForCStrings(codec);
QTextCodec::setCodecForLocale(codec);

Автор: iCast 28.10.2015, 15:37

Цитата(ViGOur @ 28.10.2015, 16:03) *
К тому же не полный у тебя набор, чему нужно установить нжный тебе кодак:

в Qt выше 5 версии только есть setCodecForLocale, насколько я знаю.
Цитата(ViGOur @ 28.10.2015, 16:03) *
Откуда считывать?

Текст считывается из QTextEdit.

Автор: Iron Bug 28.10.2015, 16:09

Это багофича новой Qt. Решение см. здесь: http://www.forum.crossplatform.ru/index.php?showtopic=10548

Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)