【发布时间】:2015-08-27 21:42:22
【问题描述】:
我一直在尝试将我通过串行获取的十六进制字符串转换为我可以使用 swift 用作 ascii 字符串的东西。
例如,如果这是字符串:“”
我想把它转换成一个写着“sleep and bake le”的字符串
注意:我们必须删除字符串前端和末端的胡萝卜。
我已经为此做了两天,但没有一个优雅或简单的解决方案。任何想法将不胜感激。
我已经走到这一步了,
func hex2ascii (example: String) -> String {
let chars = Array(example)
let numbers = map (stride(from: 0, to: chars.count, by: 2)) {
strtoul(String(chars[$0 ..< $0+2]), nil, 16)
}
var final = ""
var i = 0
while i < numbers.count {
final.append(Character(UnicodeScalar(Int(numbers[i]))))
i++
}
return final
}
例如,输入“”返回此`“6Æep aæBatte”Æ“'
显然不对,如何解决这个问题?
【问题讨论】:
-
我试过了,但是没用
标签: string swift unicode hex ascii