Я пишу текстовый редактор под Symbian.
Когда ввожу русский текст в QTextEdit отображается нормально, потом сохраняю в файл .txt, открываю этот файл в этом же QTextEdit, и уже вместо русских букв закарючки.
Вот пример кода сохранения и открытия файла:
void LightText::OpenFile()
	{
	QFileDialog * OpenFileDialog;	
		OpenFileDialog = new QFileDialog(0);
	QString filename=OpenFileDialog->getOpenFileName(
				this,tr("Open"), "", 
				tr("Text Files (*.txt);;HTML (*.html *.htm);; All (*)"));
	if(filename!="")
		{
	QFile f(filename); 
	
	if (!f.open(QIODevice::ReadOnly)) 
		{
	        QMessageBox::critical(this, tr("Error"),
	                        tr("Could not open file"));
	        return;
	    }
	
	f.open(QIODevice::ReadOnly);
	QTextStream ts1(&f);
	QString text=ts1.readAll();	
	text.toUtf8();
	ui.textEdit->setText(text);  
	f.close();
		}
	}
void LightText::SaveFile()
{
	QString filt="";
	QFileDialog dialog(this);
	 dialog.setNameFilter( tr("Text (*.txt);;HTML (*.html)"));
	 dialog.setAcceptMode(QFileDialog::AcceptSave);
	 dialog.setOptions(QFileDialog::DontUseNativeDialog);
	 QStringList fn1;
	  if (dialog.exec())
		  {
	      fn1=dialog.selectedFiles();
		 filt=dialog.selectedNameFilter();
		  }
	  QString fn=fn1.back();
	  
          if((fn.section( ".", -1, -1 ) != "html") && (fn.section(".", -1, -1 ) != "htm") && (filt=="HTML (*.html)"))
      	    fn+=".html"; 
	  if((fn.section( ".", -1, -1 ) != "txt")&&(filt=="Text (*.txt)"))
			 fn+=".txt";
    
       QString type;
      if (fn != "") 
    	  {
      QFile f( fn );
     
      if (!f.open(QIODevice::WriteOnly))
    	  {
    	  QMessageBox::critical(this, tr("Error"),
    	 	                        tr("Could not save file"));
    	 	        return;
          }
      else
    	  {  
      f.open( QIODevice::WriteOnly );
      QTextStream ts2( &f );
      if(fn.section( ".", -1, -1 ) == "txt")
    	  {
      QString text=ui.textEdit->toPlainText();
       ts2 << text.toUtf8();  
       ts2.flush();
      f.close();
    	  }
      if((fn.section( ".", -1, -1 ) == "html")||(fn.section( ".", -1, -1 ) == "htm"))
         	  {
           QString text=ui.textEdit->toHtml();
            ts2 << text.toUtf8();  
            ts2.flush();
           f.close();
    	  }
    	  }
    	  }
}