2

すでにUnicodeデータ(WMICファイル出力によって作成された)であるため、Unicodeデータを書き込み/追加したいファイルがあります。UTF-16(LE)BOM:0xFF0xFEで始まります。

ループ内にいくつかの情報を追加したいと思います。

  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で書かれているようです(それぞれ1バイトしかかかりません)。

ご協力いただきありがとうございます!

乾杯マティアス

編集:わかりました、多分問題はLatin1 <-> UTF-16でもありますか?

4

1 に答える 1

0

メインに次の 2 行を追加します。これにより、QString が UTF-8 を使用するようになります。

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

追加については、このリンクが役立つ可能性があります。

于 2012-07-28T11:18:00.743 に答える