C++ convert UnicodeString into String

2019-08-01 12:35发布

Please help me somebody to convert unicodestring into string

This is how i am getting unicodestring

UnicodeString _str = OpenDialog1->FileName;

Or if it possible to write into file unicode string with ifstream or something like that?

Thanks

3条回答
唯我独甜
2楼-- · 2019-08-01 13:14

Converting your string to bytes would require some encoding. There are various libraries that do this, so it depends on the framework you are using.

As an alternative, you could use wofstream to write wchar_t characters to the stream.

查看更多
地球回转人心会变
3楼-- · 2019-08-01 13:24

Depending on your needs, assign the UnicodeString to an AnsiString or a UTF8String, and then write that to your file instead of the original UnicodeString itself:

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

Or:

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

To pass an AnsiString/UTF8String to an STL function, you have to either:

1) use the c_str() method:

stream << _astr.c_str();

2) construct a temp std::string:

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

3) in the case of AnsiString only, specify the VCL_IOSTREAM define in your project to enable AnsiString's own <<< and >> operators:

stream << _astr;
查看更多
Bombasti
4楼-- · 2019-08-01 13:26
std::string converted;
us.toUTF8String(converted);

us is (ICU) UnicodeString

查看更多
登录 后发表回答