我已成功扫描并从QR读取stringValue。但是无法将stringValue转换为可读格式。 https://uidai.gov.in/images/resource/User_manulal_QR_Code_15032019.pdf 我尝试使用上述过程进行转换,但无法成功。
1)我尝试将库转换为BigInt并转换为二进制值
let str = String(self.metadataStringValue, radix: 2)
print(str)
2)成功将Big Integer转换为字节数组
let byteArray = Array(BigUInt(str)!.serialize())
print(byteArray)
3)使用了苹果的解压缩算法(zlib)
4)从索引0读取字节数组的值,直到第一个定界符值“ 255”,然后将此字节数组值转换为编码为“ ISO-8859-1”的字符串。
var firstDelimiter = ArraySlice<UInt8>()
var firstDelimiterArray = [UInt8]()
var delimiterIndex:Int = 0
for index in 0..<byteArray.count {
if byteArray[index] == 255 {
firstDelimiter = byteArray[delimiterIndex...index]
delimiterIndex = index + 1
firstDelimiterArray = firstDelimiter.map { $0 }
let data2 = Data(bytes: firstDelimiterArray, count: firstDelimiterArray.count)
print(data2 as NSData)
}
}
5)“ ISO-8859-1”编码 无法转换为readbale格式(我用过.isolatin1)