我正在尝试将十六进制字符串转换为文本。
这就是我所拥有的:
// Str to Hex
func strToHex(text: String) -> String {
let hexString = text.data(using: .utf8)!.map{ String(format:"%02x", $0) }.joined()
return "0x" + hexString
}
我正在尝试将刚刚创建的十六进制字符串反转回原始字符串。
因此,例如:
let foo: String = strToHex(text: "K8") //output: "0x4b38"
我想做一些类似的事情
let bar: String = hexToStr(hex: "0x4b38") //output: "K8"
有人能帮我吗?
谢谢
你可能可以使用这样的东西:
func hexToStr(text: String) -> String {
let regex = try! NSRegularExpression(pattern: "(0x)?([0-9A-Fa-f]{2})", options: .caseInsensitive)
let textNS = text as NSString
let matchesArray = regex.matches(in: textNS as String, options: [], range: NSMakeRange(0, textNS.length))
let characters = matchesArray.map {
Character(UnicodeScalar(UInt32(textNS.substring(with: $0.rangeAt(2)), radix: 16)!)!)
}
return String(characters)
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)