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

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

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: Как из двух char cделать один QChar?  (Прочитано 10643 раз)
mqter
Гость
« : Июнь 12, 2010, 21:20 »

Как из двух char cделать один QChar?
Записан
SimpleSunny
Гость
« Ответ #1 : Июнь 12, 2010, 22:19 »

А что это за char? Младший и старший байт?

Потому что не совсем понятно, как из двух символов сделать один.
Записан
Sancho_s_rancho
Гость
« Ответ #2 : Июнь 12, 2010, 23:09 »

Как из двух char cделать один QChar?
Видимо День России не прошел мимо вас. Даже немножко завидно.

Возможно вы хотите что-то типа этого
Код:
QString	QTextCodec::toUnicode ( const char * input, int size, ConverterState * state = 0 ) const
, но скорее всего ваше желание связано с непониманием происходящего.
пи.си. не все символы в unicode 16bit кодируются 2-мя байтами, насколько я помню
« Последнее редактирование: Июнь 12, 2010, 23:14 от Sancho_s_rancho » Записан
mqter
Гость
« Ответ #3 : Июнь 12, 2010, 23:12 »

А что это за char? Младший и старший байт?

Потому что не совсем понятно, как из двух символов сделать один.

да, младший и старший байт. QChar как я понял двубайтовый, а char - один байт.
как соединить их?
Записан
Sancho_s_rancho
Гость
« Ответ #4 : Июнь 12, 2010, 23:14 »

А что это за char? Младший и старший байт?

Потому что не совсем понятно, как из двух символов сделать один.

да, младший и старший байт. QChar как я понял двубайтовый, а char - один байт.
как соединить их?
Не все символы в unicode 16bit кодируются 2-мя байтами, насколько я помню
Записан
mqter
Гость
« Ответ #5 : Июнь 12, 2010, 23:16 »

А что это за char? Младший и старший байт?

Потому что не совсем понятно, как из двух символов сделать один.

да, младший и старший байт. QChar как я понял двубайтовый, а char - один байт.
как соединить их?
Не все символы в unicode 16bit кодируются 2-мя байтами, насколько я помню


Ну вроде UTF-8 не используется для QChar
Записан
Sancho_s_rancho
Гость
« Ответ #6 : Июнь 12, 2010, 23:18 »

Для QChar используется 16bit Unicode, а он использует для разных символов разное кол-во байт.
Цитировать
UTF-16 (англ. Unicode Transformation Format) в информатике — один из способов кодирования символов из Unicode в виде последовательности 16-битных слов. Символы с кодами меньше 0x10000 (216) представляются как есть, а символы с кодами 0x10000—0x10FFFF — в виде последовательности двух 16-битных слов
Записан
Sancho_s_rancho
Гость
« Ответ #7 : Июнь 12, 2010, 23:19 »

Короче говоря 1 символ как нефиг делать может занимать 4 байта. Вот такие пирожки с котятками.
Записан
mqter
Гость
« Ответ #8 : Июнь 12, 2010, 23:20 »

Как из двух char cделать один QChar?
Видимо День России не прошел мимо вас. Даже немножко завидно.

Возможно вы хотите что-то типа этого
Код:
QString	QTextCodec::toUnicode ( const char * input, int size, ConverterState * state = 0 ) const
, но скорее всего ваше желание связано с непониманием происходящего.
пи.си. не все символы в unicode 16bit кодируются 2-мя байтами, насколько я помню

ну а по коду как будет выглядеть если допустим имеем :
char s1 = '0x34';
char s2 = '0xA8';

И нужно получить :
QChar s ='0xA834';
Записан
SimpleSunny
Гость
« Ответ #9 : Июнь 12, 2010, 23:22 »

Код
C++ (Qt)
QChar::QChar ( uchar cell, uchar row )
inline QChar::QChar(uchar c, uchar r) : ucs(ushort((r << 8) | c)){}
 
« Последнее редактирование: Июнь 12, 2010, 23:24 от SimpleSunny » Записан
mqter
Гость
« Ответ #10 : Июнь 12, 2010, 23:24 »

QChar::QChar ( uchar cell, uchar row )
inline QChar::QChar(uchar c, uchar r) : ucs(ushort((r << Крутой | c)){}


да ну!!! и что ? пашет? Улыбающийся
Записан
SimpleSunny
Гость
« Ответ #11 : Июнь 12, 2010, 23:28 »

Почитайте про операции << и |.
Записан
zenden
Гость
« Ответ #12 : Июнь 12, 2010, 23:29 »

скажите, а зачем вам это надо
Записан
Sancho_s_rancho
Гость
« Ответ #13 : Июнь 12, 2010, 23:31 »

скажите, а зачем вам это надо
Присоединяюсь к вопросу.
Записан
mqter
Гость
« Ответ #14 : Июнь 12, 2010, 23:31 »

Почитайте про операции << и |.

понял, сдвиг и логическая операция "и"
спасибо
Записан
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  


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