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

时间:2014-10-04 00:00:48

标签: c++ objective-c nsstring stdstring

我有一个奇怪的情况,我试图将std :: string转换为NSString。

我尝试了通常的方法,通常是: [NSString stringWithUTF8String:myCppString.c_str()];

但是,我收到的是nil。我认为它与奇怪的角色有关。这主要是因为我在调查数据中看到了以下内容:

enter image description here

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

我可以将字符串打印为const char *和std :: string,就像从日志中看到的那样。如果有任何影响,c ++字符串是用ostringstream制作的。数据来自一个服务器,该服务器应该是UTF-8,并通过json送入sqlite数据库。

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

=== [编辑] === 这就是十六进制数据出现的原因,其中一个特殊原因是颠倒的问号。

enter image description here

1 个答案:

答案 0 :(得分:0)

事实证明,在我的特定情况下,正在读取的奇怪字符表示不存在我正在读取地图键并且没有检查find命令是否返回了myMap.end()。

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