C++ 将奇怪的std::string转换为NSString

C++ 将奇怪的std::string转换为NSString,c++,objective-c,nsstring,stdstring,C++,Objective C,Nsstring,Stdstring,我遇到了一个奇怪的情况,我试图将std::string转换为NSString 我尝试了通常有效的方法,即: [nsstringwithutf8string:myCppString.c_str()] 然而,我得到了零回报。我认为这与奇怪的角色有关。这主要是因为我在调查数据中看到了以下几点: 注意向上向下的问号。我尝试了在查看SO时发现的另一个调用,但它也不起作用:[NSString stringWithCString:myCppString encoding:NSUTF8StringEncodi

我遇到了一个奇怪的情况,我试图将std::string转换为NSString

我尝试了通常有效的方法,即: [nsstringwithutf8string:myCppString.c_str()]

然而,我得到了零回报。我认为这与奇怪的角色有关。这主要是因为我在调查数据中看到了以下几点:

注意向上向下的问号。我尝试了在查看SO时发现的另一个调用,但它也不起作用:[NSString stringWithCString:myCppString encoding:NSUTF8StringEncoding]

我可以将字符串打印为const char*和std::string,正如您从日志中看到的那样。如果有任何影响,C++字符串是由OSTRing流生成的。数据来自一个服务器,该服务器应该是UTF-8,并通过json输入sqlite数据库

关于如何让NSString正常工作,您有什么建议吗

==[编辑]=== 这就是为什么十六进制数据会出现一个带有倒置问号的特殊原因


事实证明,在我的特殊情况下,我正在读取一个映射键,并且没有检查find命令是否返回myMap.end(),而表示不存在的奇怪字符


感谢您抽出时间回顾我的问题。

十六进制转储将有助于确定编码和不可打印字符。如果您提供十六进制转储,请将其复制/粘贴到您的问题中。