Вы можете получить свое строковое значение unicodeScalars, преобразовать в гекса и завершить его заполнением начальными нулями:
extension String {
var unicodes: [String] {
return unicodeScalars.map{ String($0.value, radix: 16) }
}
func paddingToLeft(maxLength: Int) -> String {
return repeatElement("0", count: max(0,maxLength-count)) + self
}
}
let str = "\u{00e2}"
let hexa = str.unicodes.first!
print(hexa.paddingToLeft(maxLength: 4)) // "00e2\n"