Я пытаюсь декодировать закодированную строку Base64, и он всегда возвращает nil при использовании кодировки UTF8. Я попытался изменить кодировку символов на несколько разных опций и не могу заставить ее возвращать то же значение, что и когда я помещаю ее в такой веб-сайт, как: https://www.base64decode.org/ObjC Base64 Decode возвращает nil
Строка, которую я пытаюсь декодировать, это «qc6mSDfm1pizbp0szoQmoQ = =»
Вот код, я использую, чтобы проверить эту
// DataHelper.m
+(NSString*) base64Encode:(NSString*) string andEncoding:(NSStringEncoding) encoding {
NSData *plainData = [string dataUsingEncoding:encoding];
return [plainData base64EncodedStringWithOptions:kNilOptions];
}
+(NSString*) base64Decode:(NSString*) string andEncoding:(NSStringEncoding) encoding {
NSData *decodedData = [[NSData alloc] initWithBase64EncodedString:string options:kNilOptions];
NSString *str = [[NSString alloc] initWithData:decodedData encoding:encoding];
return str;
}
// TestCases.m
-(void) testDecodeEncodeNonce {
NSString *nonce = @"qc6mSDfm1pizbp0szoQmoQ==";
NSString *decoded = [DataHelper base64Decode:nonce andEncoding:NSUTF8StringEncoding];
NSString *encoded = [DataHelper base64Encode:decoded andEncoding:NSUTF8StringEncoding];
XCTAssertEqualObjects(nonce, encoded);
}
1. Вы пробовали NSASCIIStringEncoding? 2. Является ли '-base64Encode: andEncoding:' работает правильно? – fullofsquirrels
Да, я получаю ту же ошибку. «закодированный» возвращается как null. – Geoff