Qt:如何将unicode数据写入/附加到现有文件

时间:2011-06-22 08:17:25

标签: file unicode append qfile

我有一个文件,我想写/附加unicode数据,因为它已经是unicode数据(由WMIC文件输出创建)。它以UTF-16(LE)BOM开始:0xFF 0xFE。

我想在循环中附加一些信息:

  QString line = QString("%1,%2,%3,%4\n")
    .arg( node )
    .arg( *it )
    .arg( sDisplayName )
    .arg( sDisplayVersion );
  out.write( line.toLatin1().data() );

其中:

QFile out;
out.setFileName(filename);

我尝试了不同的东西。我认为QStrings本身就是Unicode。但我想我错过了一些东西 - 比如设置编码。似乎我的附加字符被写为ASCII(每个只占一个字节)。

感谢您的帮助!

干杯 的Matthias

编辑:好吧也许问题也是Latin1< - > UTF-16?

1 个答案:

答案 0 :(得分:0)

在main中添加这两行,这将使QString使用UTF-8:

QTextCodec::setCodecForTr( QTextCodec::codecForName( "UTF-8" ) );
QTextCodec::setCodecForCStrings( QTextCodec::codecForName( "UTF-8" ) );

为了追加,我发现this link可能会有所帮助。