Russian Qt Forum

Qt => Общие вопросы => Тема начата: qtист от Август 18, 2010, 09:09



Название: Коды русских символов
Отправлено: qtист от Август 18, 2010, 09:09
Есть строка
QString str="вася"
пытаюсь определить код элемента строки:
int a=str.at(0).toAscii(); - возвращается 0

т.е. если код символа находится до 0x7f то всё нормально.
чё надо сделать? :'(



Название: Re: Коды русских символов
Отправлено: Waryable от Август 18, 2010, 09:22
QByteArray bArr = Str.toAscii();    // а дальше шастай себе по индексам


Название: Re: Коды русских символов
Отправлено: Barmaglodd от Август 18, 2010, 09:25
Цитировать
Returns an 8-bit ASCII representation of the string as a QByteArray.

If a codec has been set using QTextCodec::setCodecForCStrings(), it is used to convert Unicode to 8-bit char; otherwise this function does the same as toLatin1().

Может таки надо toLocal8Bit(), или кодек выставить?


Название: Re: Коды русских символов
Отправлено: Barmaglodd от Август 18, 2010, 09:27
И вообще, код из какой кодировки вам надо?


Название: Re: Коды русских символов
Отправлено: qtист от Август 18, 2010, 09:46
вот получилось

QByteArray bArr = str.toLocal8Bit();   
qint64 ff=bArr.at(0);

всем спасибо  ;D


Название: Re: Коды русских символов
Отправлено: Sancho_s_rancho от Август 18, 2010, 15:12
Есть строка
QString str="вася"
пытаюсь определить код элемента строки:
int a=str.at(0).toAscii(); - возвращается 0

т.е. если код символа находится до 0x7f то всё нормально.
чё надо сделать? :'(


Так ASCII и не должна содержать символов кириллицы.
В документации все написано:
Цитировать
Returns an 8-bit ASCII representation of the string as a QByteArray.

If a codec has been set using QTextCodec::setCodecForCStrings(), it is used to convert Unicode to 8-bit char; otherwise this function does the same as toLatin1().