我刚从 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
最佳答案
我的第一个问题是“什么样的文件”?
假设它是一个文本文件而不是二进制文件,您希望输出的编码类型是什么? UTF-8 通常是一个不错的选择,因为它受记事本之类的支持,并且对于普通的“拉丁”字符,没有开销。
就个人而言,要编写“简单”文本文件,我只需将字符串添加到 TStringList,然后使用 SaveToFile 方法。
TStringList *list = new TStringList;
list->Add(str1);
list->Add(str2);
...
list->SaveToFile(filename, TEncoding::UTF8);
关于c++ - 使用 CodeGear C++ Builder 2009 将 unicode 字符串写入文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1291338/