我在iOS Objective-C程序中使用了一个C库。我的C库的一个函数从文件中读取和处理数据。目前,这个功能看起来像
internalType* parseFile(const char* filename);
在iOS上,像这样的文件名是安全的吗?还是我用unicode射自己的脚?这里有首选的做法吗?
很可能是UTF-8。为了安全起见,应该对URL使用CFURLGetFileSystemRepresentation
,对路径使用-[NSString fileSystemRepresentation]
。
是。。。const char *
应该能很好地处理C事物,尤其是当它们与您可能调用的C函数(如fopen
)匹配时。
不过,如果你的文件可能有古怪的非Ascii文件名,那么一切都是不可能的。:-)你会更安全地执行Objective C调用,该调用接受NSURL
或NSString
对象。