ios - 在 swift 和 java 中将字符串转换为 base64 字节数组给出不同的值

标签 ios arrays encryption swift3 base64

如果是 android,一切都运行良好。我也想在 iOS 中实现相同的功能,但获得不同的值。请检查下面的图片说明。

在 Java/Android 案例中:

我尝试在 java 中将字符串转换为 base64 字节数组

 byte[] data1 = Base64.decode(balance, Base64.DEFAULT);

输出: enter image description here

在 Swift3/iOS 案例中:

我尝试在 swift 中将字符串转换为 base64 字节数组

let data:Data = Data(base64Encoded: balance, options: NSData.Base64DecodingOptions(rawValue: 0))!
let data1:Array = (data.bytes)

输出: enter image description here

最佳答案

终于解决了:

这是由于有符号和无符号整数,意思是无符号与有符号(所以 0 到 255 和 -127 到 128)。在这里,我们需要将 UInt8 数组转换为 Int8 数组,这样问题就解决了。

let intArray = data1.map { Int8(bitPattern: $0) }

关于ios - 在 swift 和 java 中将字符串转换为 base64 字节数组给出不同的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47865148/

相关文章:

android - WebRTC 无法将 Safari 与 Chrome for Android 连接

ios - 使用 NSFetchedResultsController 按日期将 CoreData 模型排列成多个部分

java - 创建 pi(x) 表

c# - 保护 XML 文件免遭编辑

ios - 如何证明iOS App的来源?

ios - 返回应用页面,来自uiwebview

java - 将 boolean 数组中的所有值设置为 true

javascript - 附加选项列表但删除以前的选项

python - 使用大 key 的 RSA 解密

encryption - Golang 在不同的机器上生成相同的加密