Swift:如何将String转换为UInt8数组?

And*_*Zet 40 swift

如何将String转换为UInt8数组?

var str = "test"
var ar : [UInt8]
ar = str
Run Code Online (Sandbox Code Playgroud)

Air*_*ity 63

有很多不同的方法,具体取决于您希望如何处理非ASCII字符.

但最简单的代码是使用utf8视图:

let string = "hello"

let array: [UInt8] = Array(string.utf8)
Run Code Online (Sandbox Code Playgroud)

注意,这将导致多字节字符表示为数组中的多个条目,即:

let string = "é"
print(Array(string.utf8))
Run Code Online (Sandbox Code Playgroud)

打印出来 [195, 169]

还有.nulTerminatedUTF8,它做了同样的事情,但是如果你的计划是把它作为一个C字符串传递给某个地方,那么最后添加一个空字符(尽管如果你这样做,你可能也可以使用.withCString或仅使用隐含桥接C函数的转换.


Mic*_*ner 10

let str = "test"
let byteArray = [UInt8](str.utf8)
Run Code Online (Sandbox Code Playgroud)