我使用AES(CrytoSwift)进行了解密,并留下了一个UInt8数组.将UInt8数组转换为appripriate字符串的最佳方法是什么?转换数组只会返回一个看起来与数组完全相同的字符串.(在Java中完成时,将Byte数组转换为String时会获得新的READABLE字符串).
Ark*_*kku 11
我不确定这对Swift 2是否是新手,但至少以下对我有用:
let chars: [UInt8] = [ 49, 50, 51 ]
var str = String(bytes: chars, encoding: NSUTF8StringEncoding)
Run Code Online (Sandbox Code Playgroud)
此外,如果数组格式化为C字符串(尾随0),这些工作:
str = String.fromCString(UnsafePointer(chars)) // UTF-8 is implicit
// or:
str = String(CString: UnsafePointer(chars), encoding: NSUTF8StringEncoding)
Run Code Online (Sandbox Code Playgroud)
我对 CryptoSwift 一无所知。但我可以阅读自述文件:
为了您的方便,CryptoSwift 提供了两个函数来轻松将字节数组转换为 NSData 或其他方式:
Run Code Online (Sandbox Code Playgroud)let data = NSData.withBytes([0x01,0x02,0x03]) let bytes:[UInt8] = data.arrayOfBytes()
所以我的猜测是:调用NSData.withBytes
以获取 NSData。现在您大概可以调用NSString(data:encoding:)
来获取字符串。
归档时间: |
|
查看次数: |
11659 次 |
最近记录: |