C++将UnicodeString转换为String

use*_*717 2 string unicode c++builder utf-8 stdstring

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

这就是我获得unicodestring的方式

UnicodeString _str = OpenDialog1->FileName;
Run Code Online (Sandbox Code Playgroud)

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

谢谢

Rem*_*eau 7

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

UnicodeString _str = OpenDialog1->FileName; 
AnsiString _astr = _str;
Run Code Online (Sandbox Code Playgroud)

要么:

UnicodeString _str = OpenDialog1->FileName; 
UTF8String _ustr = _str;
Run Code Online (Sandbox Code Playgroud)

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

1)使用c_str()方法:

stream << _astr.c_str();
Run Code Online (Sandbox Code Playgroud)

2)构建一个临时std::string:

stream << std::string(_astr.c_str(), _astr.Length());
Run Code Online (Sandbox Code Playgroud)

3)AnsiString仅在情况下,VCL_IOSTREAM在项目中指定define以启用AnsiString自己的<<<>>运算符:

stream << _astr;
Run Code Online (Sandbox Code Playgroud)