1. ホーム
  2. objective-c

[解決済み] NSStringをstd::stringに変換するにはどうしたらいいですか?

2022-12-03 03:15:49

質問

私は NSString オブジェクトがあり、それを std::string .

Objective-C++でこれを行うにはどうしたらよいでしょうか?

どのように解決するのですか?

NSString *foo = @"Foo";
std::string bar = std::string([foo UTF8String]);

編集:数年後、この答えを拡大解釈させてください。正しく指摘されているように、ほとんどの場合、あなたは cStringUsingEncoding:NSASCIIStringEncoding を使用することになるのであれば std::string . UTF-8を使うには、通常の std::strings でUTF-8を使うこともできますが、これらはバイトを操作するのであって、文字や字句を操作するのではないことに留意してください。良い入門書として、以下を参照してください。 の質問とその回答 .

また、ASCII で表現できない文字列があるけれども、それを std::string の中に入れて、そこに非 ASCII 文字を入れたくない場合は dataUsingEncoding:allowLossyConversion: を使うことで NSData で非可逆符号化された ASCII コンテンツを含む文字列を表現し、それを std::string