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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: QChar to ascii  (Прочитано 5385 раз)
berik.kz
Гость
« : Октябрь 05, 2009, 15:01 »

В общем вопрос покажется некоторым элементарным.
Почему при считывании с файла in.txt(µbЁ),переменная ch типа QChar выводит на экран все символы,а при конвертации в ascii код на экран выводит неопределенный(?) символ или присваивает значение 0?

Код:
QFile in;
in.open;
QTextStream inData(&in);
QChar ch;
while(!inData.atEnd()) {
        inData>>ch;
qDebug()<<ch<<(quint8)ch.toLatin1();
}

Output:

'µ' 181
'b' 98
'Ё' 0
<- Почему?  Непонимающий

Хотя Ё = 168 в Ascii
Записан
spirit
Гость
« Ответ #1 : Октябрь 05, 2009, 15:13 »

используй QChar::unicode.
Записан
berik.kz
Гость
« Ответ #2 : Октябрь 06, 2009, 07:01 »

используй QChar::unicode.
QChar::unicode использовал не помогает.
Ё = 1025 в unicode
Ё = A8 в HEX (168 в DEC)
тогда каким образом можно получить цифру 168 используя unicode метод?  Непонимающий
Записан
Rcus
Гость
« Ответ #3 : Октябрь 06, 2009, 07:18 »

Символа 'Ё' нет в ASCII, метод toAscii() по-умолчанию переводит символы в кодировку Latin-1 (ISO 8859-1), поэтому машинное представление 'µ' неотличимо от представления в кодировке Windows-1251 (в которой символу 'Ё' соответствует код 168). Смотрите QTextCodec.
Записан
berik.kz
Гость
« Ответ #4 : Октябрь 06, 2009, 07:57 »

Символа 'Ё' нет в ASCII, метод toAscii() по-умолчанию переводит символы в кодировку Latin-1 (ISO 8859-1), поэтому машинное представление 'µ' неотличимо от представления в кодировке Windows-1251 (в которой символу 'Ё' соответствует код 168). Смотрите QTextCodec.
Теперь понятно.
Спасибо.
Записан
motodrug
Гость
« Ответ #5 : Октябрь 12, 2009, 09:13 »

Вообще, для конвертации unicode строк в консольный вывод есть специальная функция: qPrintable().
Посмотри доку, может поможет.

С уважением.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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