Swift: How to convert a String to UInt8 array?

Lots of different ways, depending on how you want to handle non-ASCII characters.

But the simplest code would be to use the utf8 view:

let string = "hello"

let array: [UInt8] = Array(string.utf8)

Note, this will result in multi-byte characters being represented as multiple entries in the array, i.e.:

let string = "é"
print(Array(string.utf8))

prints out [195, 169]

There’s also .nulTerminatedUTF8, which does the same thing, but then adds a nul-character to the end if your plan is to pass this somewhere as a C string (though if you’re doing that, you can probably also use .withCString or just use the implicit conversion for bridged C functions.


let str = "test"
let byteArray = [UInt8](str.utf8)

swift 4

 func stringToUInt8Array(){

     let str:String = "Swift 4"
     let strToUInt8:[UInt8] = [UInt8](str.utf8)

     print(strToUInt8)
 }