Как преобразовать nsstring в cString? - PullRequest
8 голосов
/ 26 октября 2010

У меня есть nsstring (filePath), в котором указан путь к аудиофайлу. Я хочу открыть аудиофайл, поэтому хочу преобразовать nsstring в Cstring.

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

является ли строка выше верной или нет, потому что я также могу использовать fopen([filePath cString], "r");. На некоторых веб-сайтах упоминается использование UTF8stringEncoding. Какое преобразование NSString в строку является правильным?

Ответы [ 2 ]

17 голосов
/ 26 октября 2010

Использование UTF8String:

fopen([filePath UTF8String], "r");
6 голосов
/ 02 февраля 2014

Не используйте UTF8String, но fileSystemRepresentation.

Это следует делать, поскольку HFS + или другие файловые системы не являются строго совместимыми с системой Unicode.Другая причина: этот метод работает, заменяя символы абстрактного пути и расширения (соответственно «/» и «.») Их эквивалентами для текущей файловой системы.

...