【发布时间】:2016-05-11 15:45:37
【问题描述】:
我正在尝试解码 Base64 编码的字符串,并且在使用 UTF8 编码时它总是返回 nil。我尝试将字符编码更改为几个不同的选项,但无法让它返回与我将其放入网站时相同的值:https://www.base64decode.org/
我要解码的字符串是“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:工作正常吗? -
是的,我遇到了同样的错误。 “编码”返回为 null。
标签: objective-c string base64