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

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

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

【问题讨论】:

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


【解决方案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)];
    

    【讨论】:

      猜你喜欢
      • 2011-01-25
      • 2020-10-26
      • 2011-11-03
      • 2010-10-26
      • 1970-01-01
      • 1970-01-01
      • 2020-07-25
      相关资源
      最近更新 更多