如何在Swift中将UInt8字节数组转换为字符串
我在将UInt8
Byte数组快速转换为字符串时遇到问题。我搜索并找到一个简单的解决方案
String.stringWithBytes(buff, encoding: NSUTF8StringEncoding)
但是显示错误String.type
没有成员stringWithBytes
。谁能建议我解决方案?
这是我要获取的代码,NSData
并将其转换为字节数组,然后我必须将该字节数组转换为字符串。
let count = data.length / sizeof(UInt8)var array = [UInt8](count: count, repeatedValue: 0)
data.getBytes(&array, length:count * sizeof(UInt8))
String.stringWithBytes(buff, encoding: NSUTF8StringEncoding)
回答:
更新
来自的字符串bytes: [UInt8]
:
if let string = String(bytes: bytes, encoding: .utf8) { print(string)
} else {
print("not a valid UTF-8 sequence")
}
来自的字符串data: Data
:
let data: Data = ...if let string = String(data: data, encoding: .utf8) {
print(string)
} else {
print("not a valid UTF-8 sequence")
}
更新
来自的字符串bytes: [UInt8]
:
if let string = String(bytes: bytes, encoding: NSUTF8StringEncoding) { print(string)
} else {
print("not a valid UTF-8 sequence")
}
来自的字符串data: NSData
:
let data: NSData = ...if let str = String(data: data, encoding: NSUTF8StringEncoding) {
print(str)
} else {
print("not a valid UTF-8 sequence")
}
先前的答案:
String
没有stringWithBytes()
方法。 NSString
有一个
NSString(bytes: , length: , encoding: )
您可以使用的方法,但是您可以直接从创建字符串NSData
,而无需UInt8
数组:
if let str = NSString(data: data, encoding: NSUTF8StringEncoding) as? String { println(str)
} else {
println("not a valid UTF-8 sequence")
}
以上是 如何在Swift中将UInt8字节数组转换为字符串 的全部内容, 来源链接: utcz.com/qa/432969.html