2011-07-18 13 views
0

QXmlStreamWriterでXMLファイルを書き込むときにエンコードに問題がありますが、どうすれば解決できますか? stream.setCodec("UTF-8")または "windows-1251"を使用することは役に立ちません。QXmlStreamWriterとキリル文字

QFile *file = new QFile(filename); 
if (file->open(QIODevice::WriteOnly | QIODevice::Text)) 
     { 
     QXmlStreamWriter stream(file); 
     stream.setAutoFormatting(true); 
     stream.writeStartDocument(); 
     stream.writeStartElement("СЕКЦИЯ"); // start root section 
      stream.writeStartElement("FIELD"); 
      stream.writeAttribute("name", "Имя"); 
      stream.writeAttribute("value", "Иван"); 
      stream.writeEndElement(); 
     stream.writeEndElement(); // END СЕКЦИЯ 
     file->close(); 
} 
+0

'stream.writeEndDocument()'が見当たらず、ファイルバイナリ( 'file-> open(QIODevice :: WriteOnly)')をオープンします。 – Naszta

+0

サンプルコードですが、私は作業コードをsuccしましたが、エンコードに問題があります。 – mcuw

答えて

1

ほとんどの場合、あなたのソース・ファイル内の文字列リテラルの解釈は問題ではなく、ストリームライターの構成です。 ソースファイルがUTF-8でエンコードされていることを確認し、QString変換への暗黙のリテラルの代わりにQString :: fromUtf8( "Imja")など(キリル文字のImja)を使用します。

関連する問題