我需要從西里爾字串創建一個條形碼 128,因此即使使用編碼,此代碼也適用于 AZ 和數字,但無濟于事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,但仍然沒有西里爾字串的結果。可以請人幫助我嗎?歡迎任何建議。
uj5u.com熱心網友回復:
Code 128 僅支持 ASCII(并且僅支持任何給定代碼集中的 ASCII 子集)。
您可以執行自己的映射以將 128 個值重用為西里爾文而不是 ASCII(即撰寫代碼以映射“A -> A,Б -> B”或類似的東西),或使用代碼集 C 對 2 位數字進行編碼而不是字母,但由你來處理兩端的編碼和解碼。據我所知,沒有標準的 Code 128 系統會將其解碼為西里爾字母。
通過使用FNC4,您可以對 Latin-1 進行編碼。但是,我不認為這是非常普遍的實作,并且對西里爾文沒有幫助。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/517501.html
