3

我已成功扫描并从 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)成功将大整数转换为字节数组

 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)

4

0 回答 0