C char *进入Objective-C NSString(或NSData?)

我正在解析C中的文件字节流,并通过回调将结果组织到Objective-C世界中的NSDictionaryNSArray中。

NSDictionary的键是NSString所有实例。 我正在使用NSNEXTSTEPStringEncoding将C字符串转换为NSString ,但现在又一些键是nil (即使C字符串有一个或多个字符)。

这样做的正确方法是什么?

NSNEXTSTEPStringEncoding是一个非常古老而罕见的字符串编码,可能是错误的使用。 如果文本文件来自西欧或北美,则它们通常为Latin-1或UTF-8。 我们现在假设是UTF-8(那是NSUTF8StringEncoding 。)理想情况下,你知道编写文件时使用的编码,你在阅读时会使用它。

你可能认为其余的代码是正确的,因为你正在收回字符串。 这些字符串不是纯粹的7位ASCII,可能会给你带来麻烦。