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 );

这就是我现在正在做的,但我想应该有一些原生的方式。
顺便说一句,是否可以获取一次 Preamble 并假设在应用程序生命周期内它不会改变?从 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 回答