2014-02-05 4 views
2

Я получаю закодированную строку string.string, которая наконец содержит знак «=». Я пытаюсь расшифровать его, используя Base64 , но его не расшифровать properly.Here мой код:Как декодировать строку с Base64 в iPhone

NSData *decodedData = [[NSData alloc] initWithBase64EncodedString:string options:0]; 
NSString *decodedString = [[NSString alloc] initWithData:decodedData encoding:NSUTF8StringEncoding]; 
NSLog(@"decodedString %@", decodedString); 

но decodedString является nil.Please помощь me.thanks заранее.

+1

Попробуйте передать 'NSDataBase64DecodingIgnoreUnknownCharacters' параметр' options'. – rmaddy

+0

http://stackoverflow.com/questions/12020307/how-to-decode-convert-a-base64-string-to-nsdata – iPatel

+0

Доступен онлайн-кодировщик/декодер base64 .. попробуйте проверить свою кодированную базовую 64-строку, т.е. , является ли строка допустимой строкой, кодированной base64, или нет? –

ответ

0

Возможно, вы ошибаетесь в кодировке. Попробуйте этот код, его рабочий штраф и испытания:

NSString *string = @"user3007459="; 
NSString *base64EncodedString = [[string dataUsingEncoding:NSUTF8StringEncoding] base64EncodedStringWithOptions:0]; 
NSData *decodedData = [[NSData alloc] initWithBase64EncodedString:base64EncodedString options:0]; 
NSString *decodedString = [[NSString alloc] initWithData:decodedData encoding:NSUTF8StringEncoding]; 
NSLog(@"decodedString %@", decodedString); 
1

Единственное логическое объяснение, которое я могу видеть, что строка, которую вы декодировании пуст, потому что это правильный способ для декодирования base64 закодированный.

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