C ++将UnicodeString转换为String

时间:2012-07-02 09:57:03

标签: string unicode utf-8 c++builder stdstring

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

这就是我获取unicodestring的方式

UnicodeString _str = OpenDialog1->FileName;

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

由于

3 个答案:

答案 0 :(得分:7)

根据您的需要,将UnicodeString分配给AnsiStringUTF8String,然后将其写入您的文件而不是原始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 define以启用AnsiString自己的<<<>>运算符:

stream << _astr;

答案 1 :(得分:2)

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

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

答案 2 :(得分:0)

std::string converted;
us.toUTF8String(converted);
我们是(ICU)UnicodeString