2

我有一个要写入/附加 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 (每个只占一个字节)。

谢谢你的帮助!

干杯马蒂亚斯

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

4

1 回答 1

0

在主要添加这两行,这将使 QString 使用 UTF-8:

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

对于附加,我发现这个链接可能会有所帮助。

于 2012-07-28T11:18:00.743 回答