Russian Qt Forum
Сентябрь 21, 2024, 14:43 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: ASCII символы  (Прочитано 5213 раз)
123123
Гость
« : Октябрь 21, 2009, 14:31 »

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

Мне нужно получить из строки 8-битные ASCII-коды символов, делаю так:
Но в QByteArray сохраняется непонятно что, как правильно реализовать такую задачу?
Поищи по форуму темы с QTextCodec или прочитай про него в документации.
Записан
z11t3
Гость
« Ответ #2 : Октябрь 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;
}
Записан
zenden
Гость
« Ответ #3 : Октябрь 23, 2009, 13:32 »

Что значит "непонятно что" ? А что вы от него хотите?
попробуйте .toLocal8Bit();

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

Мало того что этот код повторяет уже имеющуюся функциональность - он еще и выходит за границы массива и вызывает вылет программы.
Записан
123123
Гость
« Ответ #4 : Октябрь 23, 2009, 15:02 »

спасибо BRE, решил так:
Код:
QString ss = ui->lineEdit->text();
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("cp1251"));
QByteArray buf_in;
buf_in = ss.toAscii();
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.066 секунд. Запросов: 20.