1

Builder 6 から Builder 2009 に切り替えたばかりで、質問があります。

Unicode 文字列をファイルに書き込むにはどうすればよいですか?

TBytes Preamble1 = TEncoding::Unicode->GetPreamble();
UnicodeString str1("string1");
int len = TEncoding::Unicode->GetByteCount(str1);

FileWrite( iFile,&Preamble1[0],Preamble1.Length );

FileWrite( iFile,str1.c_str(),len );

これは私が今やっていることですが、ネイティブな方法があるはずです。
ところで、一度プリアンブルを取得して、アプリケーションの存続期間中は変更されないと仮定しても問題ありませんか? UnicodeString の利用可能なドキュメントから、常に UTF-16 LE であるようです

4

1 に答える 1

3

私の最初の質問は、「どのようなファイルですか?」

バイナリではなくテキスト ファイルであると仮定すると、出力にはどのようなエンコーディングが必要ですか? UTF-8 は、メモ帳などでサポートされているため、通常は適切な選択です。通常の「ラテン」文字の場合、オーバーヘッドはありません。

個人的には、「単純な」テキスト ファイルを作成するには、文字列を TStringList に追加してから、SaveToFile メソッドを使用します。

TStringList *list = new TStringList;
list->Add(str1);
list->Add(str2);
...
list->SaveToFile(filename, TEncoding::UTF8);
于 2009-08-19T14:27:36.063 に答える