我需要从cyrillic字符串创建一个条形码128,所以这段代码对A和数字都很好,即使使用编码let data = string.data(using: String.Encoding.windowsCP1251)也没有帮助。
func generateBarcode(from string: String) -> UIImage? {
let data = string.data(using: String.Encoding.ascii)
if let filter = CIFilter(name: "CICode128BarcodeGenerator") {
filter.setValue(data, forKey: "inputMessage")
let transform = CGAffineTransform(scaleX: 3, y: 3)
if let output = filter.outputImage?.transformed(by: transform) {
return UIImage(ciImage: output)
} else {
print("no image!")
}
}
return nil
}此外,我尝试了RSBarcodes_Swift,但仍然没有对西里尔字符串的结果。有人能帮帮我吗?欢迎任何建议。
发布于 2022-10-18 21:19:13
代码128只支持ASCII (并且在任何给定的代码集中只支持ASCII的一个子集)。
您可以执行自己的映射,将128个值重用为Cyrillic而不是ASCII (即编写代码来映射"A -> A,Б-> B“或类似的东西),或者使用代码集C来编码2位数字而不是字母,但这取决于您在两端处理编码和解码。没有标准的代码128系统,我知道是将它解码为西里尔。
通过使用FNC4,可以对拉丁文-1进行编码。然而,我不认为这是非常普遍的实现,并没有帮助西里尔。
https://stackoverflow.com/questions/74116623
复制相似问题