解码用android编码的base64字符串

解码用android编码的base64字符串,android,ios,objective-c,base64,Android,Ios,Objective C,Base64,我有一个字符串,我需要从ios解码,但在Android中使用base64加密 String encoded = (Base64.encodeToString(vals, Base64.DEFAULT)); 和我在目标C中试图解码的字符串一样,我得到了零 //stringToDeccode用android编码的字符串 NSData *decodedData = [[NSData alloc] initWithBase64EncodedString:stringToDeccode options:

我有一个字符串,我需要从ios解码,但在Android中使用base64加密

String encoded = (Base64.encodeToString(vals, Base64.DEFAULT));
和我在目标C中试图解码的字符串一样,我得到了零 //stringToDeccode用android编码的字符串

NSData *decodedData = [[NSData alloc] initWithBase64EncodedString:stringToDeccode options:0];
NSString *decodedString = [[NSString alloc] initWithData:decodedData encoding:NSUTF8StringEncoding];
//解码字符串为零

同样的字符串,我用过这个网站,能够解码。


让我知道我做错了什么

我认为您的输入文本有问题。 以下是Android代码:

 String encoded = (Base64.encodeToString("IOS Developer".getBytes(), Base64.DEFAULT));
从Android编码的文本是
su9tierldmvb3blcg==

iOS代码:

  NSData *decodedData = [[NSData alloc] initWithBase64EncodedString:@"SU9TIERldmVsb3Blcg==" options:0];
  NSString *decodedString = [[NSString alloc] initWithData:decodedData encoding:NSUTF8StringEncoding];
  NSLog(@"%@",decodedString);
对我来说,它起作用了:

//拜蒂雷:这是你的形象吗

安卓:

String encoded=Base64.encodeToString(byteArray,Base64.DEFAULT)

iOS/Swift 4:

    if let data = Data(base64Encoded: encoded, options: .ignoreUnknownCharacters){
        return UIImage(data: data)

}

是否尝试将不同的选项传递给
initWithBase64EncodedString
方法?字符串是什么?我建议不要使用Base64.DEFAULT,而是使用“string encoded=(Base64.encodeToString(VAL,Base64.NO_WRAP));”。这适用于Objective-C或Swift标准解码。编码文本在哪里?只需写在此处测试即可