c + +的UnicodeString转换成字符串(C++ convert UnicodeStrin

2019-09-18 22:49发布

请帮我有人要转换成的UnicodeString字串

这就是我如何得到的UnicodeString

UnicodeString _str = OpenDialog1->FileName;

或者,如果有可能写入文件中的Unicode字符串ifstream的或类似的东西?

谢谢

Answer 1:

根据您的需求,分配UnicodeStringAnsiStringUTF8String ,然后写你的文件,而不是原来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)构建一个临时std::string

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

3)在的情况下AnsiString只,指定VCL_IOSTREAM在您的项目,以使AnsiString类型自己定义<<<>>运算符:

stream << _astr;


Answer 2:

您的字符串转换为字节需要一些编码。 有迹象表明,这样做的各种库,所以这取决于你所使用的架构。

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



Answer 3:

std::string converted;
us.toUTF8String(converted);

我们是(ICU)的UnicodeString



文章来源: C++ convert UnicodeString into String