![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
MishaUA |
![]()
Сообщение
#1
|
Участник ![]() ![]() Группа: Участник Сообщений: 185 Регистрация: 28.4.2013 Пользователь №: 3810 Спасибо сказали: 13 раз(а) Репутация: ![]() ![]() ![]() |
Здравствуйте!
Моя прога имеет дополнительный встроенный отладчик, основаный на QDebug+QBuffer. Когда отладчик что-то получает, вызывается слот и результат можно считать через QBuffer->buffer(), а конвертация в текст происходит так: QTextCodec::codecForLocale()->toUnicode(QBuffer->buffer()). С латиницей проблем нет, а вот с кирилицей, есть. С строку вся кирилица записывается в юникоде с приставкой \u. К примеру, строка "Start Старт" выглядит так: "Start \u0421\u0442\u0430\u0440\u0442". Каким образом можно конвентировать эту строку в обычный вид, чтобы вместо 16-ричного значения были читаемые символы кроме как выковыривать каждый \u****, конвентировать его и записывать обратно? Спасибо! |
|
|
Litkevich Yuriy |
![]()
Сообщение
#2
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
Обычно QString нормально глотает такую строку, т.е.
получим корректную надпись.По моему вот это QTextCodec::codecForLocale() и есть проблема. |
|
|
MishaUA |
![]()
Сообщение
#3
|
Участник ![]() ![]() Группа: Участник Сообщений: 185 Регистрация: 28.4.2013 Пользователь №: 3810 Спасибо сказали: 13 раз(а) Репутация: ![]() ![]() ![]() |
Впринципе, Вы правы, если сделать конкретно так, то работает.
Возьмем более практичный пример. Допустим, есть объект QDebug, который подключен к QBuffer.
Есть файл переводов и tr("Start") переведен на русский. К сигналу readyRead() QBuffer'a подключен слот и в нем:
В результате в QPlainTextEdit добавляется "\u0421\u0442\u0430\u0440\u0442" (прям вот так, с лапками). |
|
|
MishaUA |
![]()
Сообщение
#4
|
Участник ![]() ![]() Группа: Участник Сообщений: 185 Регистрация: 28.4.2013 Пользователь №: 3810 Спасибо сказали: 13 раз(а) Репутация: ![]() ![]() ![]() |
Сделал так:
|
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 11.7.2025, 23:43 |