Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Кириллица в Qt 5.5
Форум на CrossPlatform.RU > Библиотеки > Qt > Qt Общие вопросы
iCast
Доброго всем времени суток! Столкнулся с такой проблемой: требуется считывать руский текст, разбирать его (считывать каждый символ), и производить некие действия, но не работает почему-то кодировка. Устанавливаю в кострукторе для начала:
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
Откуда считывать? Из файла делается так:
QTextStream stream(&file); 
stream.setCodec("windows-1251");
К тому же не полный у тебя набор, чему нужно установить нжный тебе кодак:
QTextCodec *codec = QTextCodec::codecForName("UTF8");
QTextCodec::setCodecForTr(codec);
QTextCodec::setCodecForCStrings(codec);
QTextCodec::setCodecForLocale(codec);
iCast
Цитата(ViGOur @ 28.10.2015, 16:03) *
К тому же не полный у тебя набор, чему нужно установить нжный тебе кодак:

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

Текст считывается из QTextEdit.
Iron Bug
Это багофича новой Qt. Решение см. здесь: http://www.forum.crossplatform.ru/index.php?showtopic=10548
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.