如何在ios中将Base64编码的NSString转换为字节数组(Java)?

时间:2015-02-27 06:14:39

标签: ios objective-c encoding character-encoding bytearray

我有一个转换为NSData的Image,然后转换为base64编码的NSString。现在我有一个服务只接受字节数组(Java支持)中的base64编码字符串。我尝试了不同的选项,但我无法将编码的字符串转换为字节数组类型。有人可以帮助我如何将编码的字符串转换为字节数组(支持Java)?

以下是我对此的回答。我开始知道最简单的方法是直接将图像数据转换为字节数组,而无需对base64进行数据编码。

3 个答案:

答案 0 :(得分:0)

NSError* error;
NSString* str=[[NSBundle mainBundle] pathForResource:@"black-circle" ofType:@"png"];
NSData* data=  [NSData dataWithContentsOfFile:str options:NSDataReadingUncached error:&error];

NSInteger length=[data length];
const char* dataBytes=[data bytes];

现在,您可以使用dataBytes指针遍历每个字节。 希望这会有所帮助。

答案 1 :(得分:0)

你可以尝试:  使用返回-[NSString UTF8String]的{​​{1}}。

或此链接可以帮助您: Convert NSString into byte array iphone

答案 2 :(得分:0)

我们可以从NSStirng获取NSdata,然后将NSData转换为字节数组。更简单的方法是使用uint8_t将捕获的图像数据转换为字节数组。下面是执行此操作的代码段。

NSData到字节数组: -

NSData *data = UIImagePNGRepresentation(imageCaptured);

    uint8_t byteArray[[data length]];

    [data getBytes:&byteArray];

    NSMutableString *byteArrayString = [[NSMutableString alloc]init];

    for (int i = 0 ; i < sizeof(byteArray); i++) {

        [byteArrayString appendString:[NSString stringWithFormat:@"%d,",byteArray[i]]];

    }

    // Removing last extra comma
    [byteArrayString deleteCharactersInRange:NSMakeRange([byteArrayString length]-1, 1)];