Base 64解码产生空
Base 64 decoding produces empty
我正在使用以下代码将 base64 字符串转换为普通字符串。
NSError *localError = nil;
NSString *myString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSData *decodedData = [[NSData alloc] initWithBase64EncodedString:myString options:0];
NSString *decodedString = [[NSString alloc] initWithData:decodedData encoding:NSUTF8StringEncoding];
NSLog(@"encoded string , %@",myString);
NSLog(@"Decode String Value: %@", decodedString);
编码字符串打印base64字符串,但解码字符串为空。为什么会这样?
避免在解码前转换为字符串:
NSData *decodedData = [[NSData alloc] initWithBase64EncodedData:data options:NSDataBase64DecodingIgnoreUnknownCharacters];
NSString *decodedString = [[NSString alloc] initWithData:decodedData encoding:NSUTF8StringEncoding];
一些 Base64 实现每 64 个字符添加一个换行符。您应该可以使用以下选项解决此问题:NSDataBase64DecodingIgnoreUnknownCharacters
.
如果你想编码和解码数据,那么你可以使用这个代码。
// Create NSData object
NSData *data1 =[@"My String" dataUsingEncoding:NSUTF8StringEncoding];
// Encoded NSString from NSData
NSString *base64Encoded = [data1 base64EncodedStringWithOptions:0];
NSLog(@"%@",base64Encoded);
// Encoding data
NSData *base64Data = [data1 base64EncodedDataWithOptions:0];
NSLog(@"%@",base64Data);
// Decoding data
NSData *nsdataDecoded = [base64Data initWithBase64EncodedData:base64Data options:0];
NSString *str = [[NSString alloc] initWithData:nsdataDecoded encoding:NSUTF8StringEncoding];
NSLog(@"%@", str);
您可以使用 Base64 库进行编码或解码,
https://github.com/dasdom/hAppy/tree/master/base64
那你就可以使用这段代码了,
NSString *strEncoded = [Base64 encode:data];
我正在使用以下代码将 base64 字符串转换为普通字符串。
NSError *localError = nil;
NSString *myString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSData *decodedData = [[NSData alloc] initWithBase64EncodedString:myString options:0];
NSString *decodedString = [[NSString alloc] initWithData:decodedData encoding:NSUTF8StringEncoding];
NSLog(@"encoded string , %@",myString);
NSLog(@"Decode String Value: %@", decodedString);
编码字符串打印base64字符串,但解码字符串为空。为什么会这样?
避免在解码前转换为字符串:
NSData *decodedData = [[NSData alloc] initWithBase64EncodedData:data options:NSDataBase64DecodingIgnoreUnknownCharacters];
NSString *decodedString = [[NSString alloc] initWithData:decodedData encoding:NSUTF8StringEncoding];
一些 Base64 实现每 64 个字符添加一个换行符。您应该可以使用以下选项解决此问题:NSDataBase64DecodingIgnoreUnknownCharacters
.
如果你想编码和解码数据,那么你可以使用这个代码。
// Create NSData object
NSData *data1 =[@"My String" dataUsingEncoding:NSUTF8StringEncoding];
// Encoded NSString from NSData
NSString *base64Encoded = [data1 base64EncodedStringWithOptions:0];
NSLog(@"%@",base64Encoded);
// Encoding data
NSData *base64Data = [data1 base64EncodedDataWithOptions:0];
NSLog(@"%@",base64Data);
// Decoding data
NSData *nsdataDecoded = [base64Data initWithBase64EncodedData:base64Data options:0];
NSString *str = [[NSString alloc] initWithData:nsdataDecoded encoding:NSUTF8StringEncoding];
NSLog(@"%@", str);
您可以使用 Base64 库进行编码或解码,
https://github.com/dasdom/hAppy/tree/master/base64
那你就可以使用这段代码了,
NSString *strEncoded = [Base64 encode:data];