Russian Qt Forum

Qt => Интернационализация, локализация => Тема начата: 123123 от Октябрь 21, 2009, 14:31



Название: ASCII символы
Отправлено: 123123 от Октябрь 21, 2009, 14:31
Мне нужно получить из строки 8-битные ASCII-коды символов, делаю так:
Код:
QString ss = ui->lineEdit->text();
QByteArray gg;
gg = ss.toAscii();
Но в QByteArray сохраняется непонятно что, как правильно реализовать такую задачу?


Название: Re: ASCII символы
Отправлено: BRE от Октябрь 21, 2009, 14:34
Мне нужно получить из строки 8-битные ASCII-коды символов, делаю так:
Но в QByteArray сохраняется непонятно что, как правильно реализовать такую задачу?
Поищи по форуму темы с QTextCodec или прочитай про него в документации.


Название: Re: ASCII символы
Отправлено: z11t3 от Октябрь 23, 2009, 11:59
как-то так:

Код:
QByteArray Class::QStringToQByteArray(const QString infile )
{
QByteArray outfile;
unsigned char in;
int x;
x = 0;
while (x<=infile.length())
{
in = infile[x].toAscii();
outfile+=in;
x++;
}
return outfile;
}


Название: Re: ASCII символы
Отправлено: zenden от Октябрь 23, 2009, 13:32
Что значит "непонятно что" ? А что вы от него хотите?
попробуйте .toLocal8Bit();

Цитата: z11t3
как-то так:

Мало того что этот код повторяет уже имеющуюся функциональность - он еще и выходит за границы массива и вызывает вылет программы.


Название: Re: ASCII символы
Отправлено: 123123 от Октябрь 23, 2009, 15:02
спасибо BRE, решил так:
Код:
QString ss = ui->lineEdit->text();
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("cp1251"));
QByteArray buf_in;
buf_in = ss.toAscii();