Название: UTF-8 и UTF-16 Отправлено: polina89 от Февраль 13, 2014, 11:14 Здравствуйте! :)Вопрос такой. Я получаю из другой программы по TCP/IP данные.(строку в xml). Данные идут в кодировке UTF-16. В настройках моего qt по умолчанию стоит кодировка UTF-8.Соответственно при пересылке русских букв возникают кракозябры ::) Как от них избавиться?) пробовала fromUtf8. В том случае, если от клиента на мой сервер идет целиковая строка, то все ок(QString), но от того клиента, с которым мне приходится работать, данные идут посимвольно и получается полная ерунда.Вот кусочки кода. Получение данных на сервер:
Код: void Server::startRead() Код: QString str; Название: Re: UTF-8 и UTF-16 Отправлено: carrygun от Февраль 13, 2014, 12:18 Нужно, наверное, посмотреть в сторону QTextCodec (http://qt-project.org/doc/qt-4.8/qtextcodec.html).
Название: Re: UTF-8 и UTF-16 Отправлено: kambala от Февраль 13, 2014, 12:20 так может надо QString::fromUtf16() использовать?
Название: Re: UTF-8 и UTF-16 Отправлено: polina89 от Февраль 13, 2014, 12:46 Простите за опечатку, использовала QObject::trUtf8().QObject::trUtf16() не существует. В сторону QTextCodec смотрела.Не особо помогло. Тут дело вот в чем. В параметре QObject::trUtf8() можно передать только char*. Если написать
Код: QObject::trUtf8(text) Код: str=""; Название: Re: UTF-8 и UTF-16 Отправлено: OKTA от Февраль 13, 2014, 12:54 char* - указатель не на символ, а на символьную строку.......
Что лежит в text и count? и как то, что там лежит, туда кладется? ;D Название: Re: UTF-8 и UTF-16 Отправлено: polina89 от Февраль 13, 2014, 13:13 text-это указатель на массив типа char, count-кол-во элементов этого массива. Кладется это все с помощью сигнала и слота) Вот тут вызывается сигнал dataAccepted:
Код: void Server::startRead() Код: void MainWindow::setServerEdit(char* text, qint64 count) Название: Re: UTF-8 и UTF-16 Отправлено: polina89 от Февраль 13, 2014, 13:35 Всем большое спасибо, проблема решилась использованием QTextStream и использованием setCodec для UTF-16 :) :) :)
Название: Re: UTF-8 и UTF-16 Отправлено: kambala от Февраль 13, 2014, 15:51 Простите за опечатку, использовала QObject::trUtf8().QObject::trUtf16() не существует так может надо QString::fromUtf16() использовать? |