Andrey Zet Andrey Zet - 1 month ago 8
Swift Question

Swift: How to convert a String to UInt8 array?

How do you convert a String to UInt8 array?

var str = "test"
var ar : [UInt8]
ar = str

Answer

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 = "é"
println(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.

Comments