Russian Qt Forum

Qt => Интернационализация, локализация => Тема начата: Vld2 от Март 11, 2007, 20:03



Название: Как считать из файла кирилицу?
Отправлено: Vld2 от Март 11, 2007, 20:03
Как считать из файла кирилицу?
Код:

file.open(IO_ReadWrite);

QTextStream stream( &file );
stream.setEncoding( QTextStream::UnicodeUTF8);
   
 char buffer[256];
 memset(buffer,0, sizeof(buffer));
 int psize = 256;
 file.readBlock(buffer,psize);
 QTextCodec* codec = QTextCodec::codecForContent(buffer, psize);
 printf("\nTEXT%s", buffer);

у меня что-то не пашет


Название: Как считать из файла кирилицу?
Отправлено: max-life от Март 13, 2007, 12:55
У меня так: (исходные файлы в utf8)
Код:
	QFile data(m_filename->text());
  if (!data.open(QFile::ReadOnly)) {
  QString rez = QString( "Failed to read data\n");
          QMessageBox::critical( 0, "Equipment", rez );
return;
  }
QTextStream out(&data);
out.setCodec (QTextCodec::codecForName("utf8"));
while (!out.atEnd())
{
query = out.readLine();
...

}


Название: Как считать из файла кирилицу?
Отправлено: куягйще от Март 13, 2007, 13:24
У меня так работает:
Код:
void	readLines(const QString & fileName, QStringList &lines)
{
QFile file(fileName);
file.open(QIODevice::ReadOnly | QIODevice::Text);
char buf[256];
while (file.readLine(buf, sizeof(buf)) >-1)
lines.append(QString::fromLocal8Bit(buf).remove("\n").trimmed());
}


Название: Как считать из файла кирилицу?
Отправлено: Dodge от Март 16, 2007, 11:56
вообще, можно глобально для транслита задать кодировку, насколько я помню это делается так: QTextCodec::setCodecForTr.