Russian Qt Forum

Qt => Вопросы новичков => Тема начата: Firefox от Декабрь 11, 2013, 11:11



Название: кодировка ibm 866
Отправлено: Firefox от Декабрь 11, 2013, 11:11
Здравствуйте. у меня возникла проблема с кодировкой IBM 866.получаю по сети данные в этой кодировку. делаю следующее преобразование
Код:
QTextCodec *codec= QTextCodec::codecForName("IBM 866");
  QString str,str2;
  str2=codec->toUnicode(arr);// arr - полученные данные в QByteArray
  str2.toUpper();
  for(int j=i;j<arr.size()-2;j++)
   {
      str.append(str2.at(j));
   }
   ui->TEatgs_pole->setText(ui->TEatgs_pole->toPlainText()+str);//QTextEdit

на экран выводятся русские буквы, только почему-то заглавные все. А когда я пытаюсь считать информацию из этого окна и вывести количеств символов в строке то получаю нелепые значения
считаю буквы в текст эдите так:
Код:
QString str;
    str=ui->TEatgs_pole->toPlainText();
    ui->Eatgs_znakov->setText(QString().setNum(str.size()));// QLineEdit
если я в это же окно ввожу текст с клавиатуры, то количество символов выводится верно.

Работаю в Windows. в майне прописан кодек UTF-8.


Название: Re: кодировка ibm 866
Отправлено: kambala от Декабрь 11, 2013, 11:34
Цитировать
только почему-то заглавные все
Код
C++ (Qt)
str2.toUpper();
Цитировать
А когда я пытаюсь считать информацию из этого окна и вывести количеств символов в строке то получаю нелепые значения
считаю буквы в текст эдите так:
попробуй
Код
C++ (Qt)
ui->Eatgs_znakov->setText(QString::number(str.size()));


Название: Re: кодировка ibm 866
Отправлено: Firefox от Декабрь 11, 2013, 12:22
спасибо :D, но к сожалению чего-то не помогло


Название: Re: кодировка ibm 866
Отправлено: Firefox от Декабрь 11, 2013, 12:38
простите проблема оказывается была не в кодировке. после букв в пакете было ещё что-то. в текст эдите не было этого видно, а размер получался брался верно. так что все уже хорошо