NSString *foo = @"Foo";
std::string bar = std::string([foo UTF8String]);
编辑:几年后,让我进一步阐述这个答案.正如正确指出的那样,如果最终使用std::string
,你很可能会使用cStringUsingEncoding:
和NSASCIIStringEncoding
.您可以将UTF-8与普通std::strings
一起使用,但请记住,这些操作基于字节,而不是字符,甚至是图形.想要有一个好的"开始",请查看这question and its answer.
还要注意的是,如果你有一个不能用ASCII表示的字符串,但你仍然希望它在std::string
中,并且你不希望在其中包含非ASCII字符,那么你可以使用dataUsingEncoding:allowLossyConversion:
来获得字符串的NSData
表示,其中包含有损编码的ASCII内容,然后将其扔到std::string
中