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

Posted

技术标签:

【中文标题】如何在 ios 中将 Base64 编码的 NSString 转换为字节数组(Java)?【英文标题】:How to convert Base64 encoded NSString into Byte Array(Java) in ios? 【发布时间】:2015-02-27 06:14:39 【问题描述】:

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

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

【问题讨论】:

这个答案会对你有所帮助 - ***.com/questions/27700431/… 【参考方案1】:
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 指针遍历每个字节。 希望这会有所帮助。

【讨论】:

我已经有一个从 NSData 转换而来的 NSString,我希望它被转换为无符号字符(字节数组)类型。在您分享的示例中,您再次将字符串转换为 NSData。你没有得到我的问题。我想要的只是将 NSString 转换为字节数组。如果您还没有理解我的问题,请告诉我。 为什么不直接从 NSData 转换为字节数组。如果你只想这样做,那么你可以再次从 NSdata 转换回 base 64 字符串: NSString *base64Encoded = @"some base64 string"; NSData *nsdataFromBase64String = [[NSData alloc] initWithBase64EncodedString:base64Encoded options:0]; 没有。我不需要你提到的方式。我需要将 NSString 转换为 Java 支持的字节数组。【参考方案2】:

你可以试试: 使用-[NSString UTF8String],它返回const char*

或者这个链接会帮助你: Convert NSString into byte array iphone

【讨论】:

【参考方案3】:

我们可以从 NSStirng 中获取 NSdata,然后将 NSData 转换为 Byte Array。更简单的方法是使用 uint8_t 将捕获的图像数据转换为字节数组。下面是sn-p的代码。

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)];

【讨论】:

以上是关于如何在 ios 中将 Base64 编码的 NSString 转换为字节数组(Java)?的主要内容,如果未能解决你的问题,请参考以下文章

如何在打字稿快递服务器中将字符串解码/编码为base64

如何在 Swift 3 中将 captureStillImageAsynchronously(sampleBuffer) 转换为 base64 编码

如何在sails.js 或通常在服务器端JavaScript 中将图像转换为base64 编码的数据URL?

如何在kotlin android中将pdf文件编码为base64字符串

在 Javascript 中将 PDF 转换为 Base64 编码的字符串

在python中将base64编码的图像解码为原始图像