crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

MishaUA
  опции профиля:
сообщение 1.11.2015, 15:07
Сообщение #1


Участник
**

Группа: Участник
Сообщений: 185
Регистрация: 28.4.2013
Пользователь №: 3810

Спасибо сказали: 13 раз(а)




Репутация:   0  


Здравствуйте!
Моя прога имеет дополнительный встроенный отладчик, основаный на QDebug+QBuffer.
Когда отладчик что-то получает, вызывается слот и результат можно считать через QBuffer->buffer(), а конвертация в текст происходит так: QTextCodec::codecForLocale()->toUnicode(QBuffer->buffer()).
С латиницей проблем нет, а вот с кирилицей, есть. С строку вся кирилица записывается в юникоде с приставкой \u. К примеру, строка "Start Старт" выглядит так: "Start \u0421\u0442\u0430\u0440\u0442".
Каким образом можно конвентировать эту строку в обычный вид, чтобы вместо 16-ричного значения были читаемые символы кроме как выковыривать каждый \u****, конвентировать его и записывать обратно?
Спасибо!
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
MishaUA
  опции профиля:
сообщение 1.11.2015, 21:35
Сообщение #2


Участник
**

Группа: Участник
Сообщений: 185
Регистрация: 28.4.2013
Пользователь №: 3810

Спасибо сказали: 13 раз(а)




Репутация:   0  


Впринципе, Вы правы, если сделать конкретно так, то работает.
Возьмем более практичный пример. Допустим, есть объект QDebug, который подключен к QBuffer.
QDebug << tr("Start") << endl;

Есть файл переводов и tr("Start") переведен на русский.
К сигналу readyRead() QBuffer'a подключен слот и в нем:
QPlainTextEdit->appendPlainText(QBuffer->buffer());

В результате в QPlainTextEdit добавляется "\u0421\u0442\u0430\u0440\u0442" (прям вот так, с лапками).
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 16.7.2025, 6:38