Answer the question
In order to leave comments, you need to log in
How to convert QString to byte array?
There was a need to rewrite one project from C # to C ++. The project is a launcher for an online game.
You need to establish a connection with the server and pass it an array of bytes. Difficulty arose in this area
byte[] b = new byte[31] { 0x1F, 0x00, 0x15, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
<b>byte[] Login = Encoding.ASCII.GetBytes(TLogin);</b>
QByteArray login = QByteArray::fromStdString(ui->loginEdit->text().toStdString());
Answer the question
In order to leave comments, you need to log in
QByteArray has a data() method that returns a char* on the array data.
char * QByteArray::data();
const char * QByteArray::data() const;
QString login_str = /*ваш код для получения строки*/ ui->loginEdit->text();
QByteArray login_ba = login_str.toUtf8();
/*
QString::toUtf8() вернет QByteArray в кодировке UTF-8.
QString::toLatin1() вернет QByteArray в кодировке Latin-1 (CP819).
Предупреждение: если строка содержит символы, которые не доступны в
кодировке Latin-1, результат функции неизвестен. Эти символы могут
быть заменены на '?' или исключены из результата.
QString::toLocal8bit() вернет QByteArray в стандартной системной однобайтной кодировке.
В русской Windows обычно это кодировка Windows-1251.
Предупреждение: если строка содержит символы, которые не доступны в
текущей кодировке, результат функции неизвестен. Эти символы могут
быть заменены или исключены из результата.
*/
char *login_ptr = login_ba.data();
char *data = /* получите вашу строку */;
QString result = QString::fromUtf8(data);
/*
QString::fromUtf8() создаст QString в кодировке UTF-8.
QString::fromLatin1() создаст QString в кодировке Latin-1 (CP819).
QString::fromLocal8bit() создаст QString в стандартной системной однобайтной кодировке.
В русской Windows обычно это кодировка Windows-1251.
*/
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question