2013-03-16 5 views
0

Я использую черный класс енота для сеансов ftp. получение содержимого каталога FTP как этотСпециальный символ из каталога FTP

arrayHelper.FTPFileName = [file objectForKey:(id)kCFFTPResourceName] 

и писать в NSMutableArray

У меня есть несколько папок с особым характером, как это на FTP акцию:

«Хейно - Mit Freundlichen Gr \ U00b8ssen (Deluxe Edition) (2013) - 320 "

Как преобразовать строку?

i've try'ed следующее:

NSString *uncodedName = [file objectForKey:(id)kCFFTPResourceName]; 
     NSLog(@"Uncoded Name is %@",uncodedName); 
     arrayHelper.FTPFileName = [NSString stringWithCString:[uncodedName cStringUsingEncoding:NSUTF8StringEncoding] 
                encoding:NSNonLossyASCIIStringEncoding]; 
     NSLog(@"Coded Name is %@",arrayHelper.FTPFileName); 

, но возвращает ноль ...

NSLog:

[7344: c07] некодированная зовут Хейно - Mit Freundlichen Gr ssen (Deluxe Edition) (2013) - 320 [7344: c07] Coded Name является (нуль)

ответ

1

можно увидеть в исходном коде CFFTPStream.c , что CFFTPStream интерпретирует все имена файлов на FTP-сервере в кодировке «Mac OS Roman». Кажется, что ваш FTP-сервер использует имена файлов в кодировке Windows, которые поэтому неправильно преобразуются в Unicode в CFFTPStream.

Но вы можете изменить процесс с

NSString *uncodedName = [file objectForKey:(id)kCFFTPResourceName]; 
NSData *data = [uncodedName dataUsingEncoding:NSMacOSRomanStringEncoding]; 
arrayHelper.FTPFileName = [[NSString alloc] initWithData:data encoding:NSWindowsCP1252StringEncoding]; 
+0

Я ответил на вопрос, даже если я не могу стоять Хейно музыку :-) –

+0

THX много! работает отлично! ... но моя следующая проблема заключается в том, чтобы написать строку в nsmutablearray (используемый для просмотра общего ресурса ftp), возвращает мне «Heino - Mit Freundlichen Gr \ U00fcssen (Deluxe Edition) (2013) - 320» ..... мне тоже с музыкой heino, но он покрывает рок-группы в новом альбоме :-) – HugoBoss

+0

@HugoBoss: выход NSLog или отладчика часто печатает специальные символы, используя escape-последовательности, '\ U00fc' * is *" ü ". –

Смежные вопросы