如何生成带有特殊字符'¿'的code128条码?

问题描述 投票:0回答:1

我正在开发具有扫描条形码功能的应用程序,但是我遇到了一些字符,这些字符对我来说一团糟。 android上发生了同样的问题,我已将其修复,但无法以相同的方式迅速修复它。

我已经尝试了多种库和本机方法从提供的String中生成code128条码的图像。它适用于除特殊字符(如“¿”)以外的所有字符。谷歌搜索问题后,我尝试了所有阅读的内容,但仍然无法解决。

extension UIImage {

    convenience init?(barcode: String) {
        let data = barcode.data(using: .ascii)
        guard let filter = CIFilter(name: "CICode128BarcodeGenerator") else {
            return nil
        }
        filter.setValue(data, forKey: "inputMessage")
        guard let ciImage = filter.outputImage else {
            return nil
        }
        self.init(ciImage: ciImage)
    }

}

let barcode = UIImage(barcode: "some text")

当从卡中扫描此精确的条形码图像并保存值时,一切正常。它甚至说“;038388¿”是code128类型,但是当我尝试从中生成code128条形码图像时,不知何故它带有“¿”字符问题。

ios swift
1个回答
0
投票

Code128被定义为仅能够编码ASCII,但ASCII没有“¿”字符。

转换let data = barcode.data(using: .ascii)失败。

我建议您使用类似]的代码尽早捕获

guard let data = barcode.data(using: .ascii) else {
   return nil
}
© www.soinside.com 2019 - 2024. All rights reserved.