首页 > 解决方案 > 将十六进制字符串转换为字符串

问题描述

我有一个十六进制字符串,想转换成字符串。

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.range(at: 2)), radix: 16)!)!)
        }
        return String(characters)
    }
let singleHex = 0400026549742069732061206c6f6e672065737461626c6973686564206661637420746861742061207265616465722077696c6c206265206469737472616374656420627920746865207265616461626c652063
let newConvertedString = Constants.hexToStr(text: singleHex)
print(newConvertedString) //\u{04}\0\u{02}eIt is a long established fact that a reader will be distracted by the readable c

预期输出为:

读者会被可读的 c 分散注意力,这是一个早已确立的事实。

标签: iosswift

解决方案


推荐阅读