我有一个文件,我想写/附加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?
答案 0 :(得分:0)
在main中添加这两行,这将使QString使用UTF-8:
QTextCodec::setCodecForTr( QTextCodec::codecForName( "UTF-8" ) );
QTextCodec::setCodecForCStrings( QTextCodec::codecForName( "UTF-8" ) );
为了追加,我发现this link可能会有所帮助。