Qt - Преобразование QString в Unicode QByteArray

У меня есть клиент-серверное приложение, где клиент будет в Qt (Ubuntu), а сервер будет в C #. Клиент Qt отправит строки в кодированном формате UTF-16. Я использовал класс QTextCodec для преобразования в UTF-16. Но всякий раз, когда происходит преобразование, оно будет дополнено еще несколькими символами. Например,

""

будет изменено на

"\ ff \ fe <\ 0b \ 0i \ 0n \ 0d \ 0 \ 0e \ 0n \ 0d \ 0p \ 0o \ 0i \ 0n \ 0t \ 0 = \ 0 '\ 02 \ 0_ \ 03 \ 0' \ 0 / \ 0> \ 0 \ 0 \ 0 "

У меня есть следующий код, который преобразует QString в QByteArray

//'socketMessage' is the QString, listener is the QTcpSocket
QTextCodec *codec = QTextCodec::codecForName("UTF-16");
QByteArray data = codec->fromUnicode(socketMessage);
listener->write(data);

Я даже попробовал QTextStream, QDataStream и т. Д. Для кодирования. Но каждый раз я получаю один и тот же результат. Я что-то здесь не так делаю?

5
задан user435152 30 August 2010 в 17:01
поделиться