如何在 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)?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Swift 3 中将 captureStillImageAsynchronously(sampleBuffer) 转换为 base64 编码
如何在sails.js 或通常在服务器端JavaScript 中将图像转换为base64 编码的数据URL?
如何在kotlin android中将pdf文件编码为base64字符串