3

请帮助我将 unicodestring 转换为字符串

这就是我得到 unicodestring 的方式

UnicodeString _str = OpenDialog1->FileName;

或者是否可以使用 ifstream 或类似的东西写入文件 unicode 字符串?

谢谢

4

3 回答 3

8

根据您的需要,将 分配UnicodeString给 anAnsiString或 a UTF8String,然后将其写入您的文件而不是原始文件UnicodeString本身:

UnicodeString _str = OpenDialog1->FileName; 
AnsiString _astr = _str;

或者:

UnicodeString _str = OpenDialog1->FileName; 
UTF8String _ustr = _str;

要将AnsiString/传递UTF8String给 STL 函数,您必须:

1)使用c_str()方法:

stream << _astr.c_str();

2)构造一个 temp std::string

stream << std::string(_astr.c_str(), _astr.Length());

3)在AnsiStringonly的情况下,在你的项目中指定VCL_IOSTREAMdefine来启用AnsiString的自带<<<>>操作符:

stream << _astr;
于 2012-07-02T22:43:18.403 回答
2

将字符串转换为字节需要一些编码。有各种库可以执行此操作,因此这取决于您使用的框架。

作为替代方案,您可以使用wofstreamwchar_t字符写入流。

于 2012-07-02T10:05:19.117 回答
1
std::string converted;
us.toUTF8String(converted);

我们是 (ICU) UnicodeString

于 2015-02-10T09:56:00.883 回答