8

我有一个 nsstring(filePath),它有音频文件的路径。我想打开音频文件,所以我想将 nsstring 转换为 Cstring。

  fopen([filePath cStringUsingEncoding:1], "r");

上面这行是否正确,因为我也可以使用fopen([filePath cString], "r");. 在一些网站中提到使用 UTF8stringEncoding。哪个是正确的 NSString 到字符串转换?

4

2 回答 2

17

使用UTF8String

fopen([filePath UTF8String], "r");
于 2010-10-26T05:25:14.633 回答
6

不要使用UTF8String,但是fileSystemRepresentation

您应该这样做,因为 HFS+ 或其他文件系统与 Unicode 系统不严格兼容。另一个原因:此方法通过将抽象路径和扩展分隔符(分别为“/”和“.”)替换为当前文件系统的等效字符来操作。

于 2014-02-02T16:38:15.960 回答