我有一个文件要在其中写入/附加unicode数据,因为它已经是unicode数据(由WMIC文件输出创建)。它从UTF-16(LE)BOM开始:0xFF 0xFE。
我想在一个循环中添加一些信息:
QString line = QString("%1,%2,%3,%4n")
.arg( node )
.arg( *it )
.arg( sDisplayName )
.arg( sDisplayVersion );
out.write( line.toLatin1().data() );
其中:
QFile out;
out.setFileName(filename);
我尝试过不同的东西。我以为QStrings本身就是Unicode。但我想我错过了一些东西——比如设置编码。我的附加字符似乎是用ASCII写的(每个字符只占用一个字节)。
谢谢你的帮助!
干杯Matthias
编辑:好吧,也许问题也出在拉丁美洲1<->UTF-16?
在main中添加这两行,这将使QString使用UTF-8:
QTextCodec::setCodecForTr( QTextCodec::codecForName( "UTF-8" ) );
QTextCodec::setCodecForCStrings( QTextCodec::codecForName( "UTF-8" ) );
对于附件,我发现这个链接可能会有所帮助。