2010-10-26 74 views
8

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

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

是上面的行的正确与否,因为我还可以使用的fopen([文件路径CSTRING],“R”);,在它被提及使用UTF8stringEncoding.Which一些网站是正确的NSString以字符串转换。请帮助我。谢谢。

回答

17

使用UTF8String

fopen([filePath UTF8String], "r"); 
+0

我可以知道你的答案和我用什么来检查它是否工作正常吗? – Warrior 2010-10-26 05:31:14

+0

@Warrior,我认为阅读文档将清除您可能遇到的任何问题。 – 2010-10-26 05:31:49

+0

你知道如何转换Nsdata中的音频文件我使用导出会话,但总是失败 – GhostRider 2010-10-26 06:03:08

6

不要使用UTF8String,但fileSystemRepresentation

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

+0

你应该更详细地解释为什么你似乎不同意接受的答案。 – manuell 2014-02-02 17:00:44

+0

由于HFS +或其他文件系统不与Unicode系统严格兼容。另一个原因:此方法通过用当前文件系统的等效替换抽象路径和扩展分隔符字符(分别为'/'和'。')来操作。 – 2014-02-04 16:22:35

+0

好,所以只需更新答案:-) – manuell 2014-02-04 16:27:49