我正在将关注UInt8数组转换为swift中的String并且每次都获得nil。我该怎么做?请帮帮我。
[ 201, 201, 87, 200, 204 ]
let decData = NSData(bytes: mydata, length: Int(mydata.count) )
let result1 = NSString(data: decData, encoding: NSUTF8StringEncoding)
编辑: 我正在使用InflateStream / deflateStream来压缩我的数据。 deflateStream的返回类型是UInt8。我试图将此值转换为字符串,以便我可以将其发送到服务器。
这是我的代码
let string = "hello"
let data: [UInt8] = Array(string.utf8)
// compress
var deflater = DeflateStream()
var (deflated, err) = deflater.write(data, flush: true)
if err != nil{
fatalError("\(err!)")
}
print(" ***** deflater: \(deflated)")
// decompress
var inflater = InflateStream()
var (inflated, errr) = inflater.write(deflated, flush: true)
if errr != nil{
fatalError("\(errr!)")
}
print(" ***** inflated: \(inflated)")
答案 0 :(得分:4)
给定一组UInt8
:
let letters: [UInt8] = [201, 201, 87, 200, 204]
我们可以将其映射到Character
:
let characters = letters.map { Character(UnicodeScalar($0)) }
然后我们只需调用期望String
的{{1}}构造函数:
[Character]