解码基数为64的字符串

时间:2014-06-16 11:56:04

标签: ios iphone objective-c base64

我需要解码一个base 64字符串。为此,我使用以下代码:

// Get the base 64 string vector.
NSString *vector64String = insertRequestDictionnary[@"check"];
// Decode the base 64 string into data.
NSData *vector64Data = [NSData dataFromBase64String: vector64String];
// Get the string from decoded data.
NSString *decodeVector = [[NSString alloc] initWithData: vector64Data
                                               encoding: NSUTF8StringEncoding];

..但每次我得到一个nil字符串(decodeVector)。 我查看这个网站(http://www.base64decode.org/),我的第一个字符串(vector64string)是基数64.例如:“h508ILubppN1xLpmXWLfnw ==”给出“<uĺf] bߟ”

感谢。

1 个答案:

答案 0 :(得分:0)

并非所有数据都是NSUTF8String。 Base64的要点是创建一个自然不是字符串的数据的字符串表示。

NSString *vector64String = @"h508ILubppN1xLpmXWLfnw==";
NSData *vector64Data = [[NSData alloc] initWithBase64EncodedString:vector64String options:0];
NSLog(@"vector64Data: %@", vector64Data);

NSLog输出:

  

vector64Data:< 879d3c20 bb9ba693 75c4ba66 5d62df9f>

vector64Data 解码后的base64字符串。

vector64Data不是UTF8字符串,只是数据。