在 previous post 中,您已经了解了如何使用 C# 生成和读取不同类型的条形码。但是,在某些情况下,您必须处理非英文字符。例如,当您使用阿拉伯语、拉丁语、希腊语或类似语言时。在这种情况下,您可能需要将字符编码为 Unicode 标准,即 UTF-8。据此,本文介绍了如何在 C# 中使用 UTF-8 编码生成和读取条形码。
使用 UTF-8 编码生成条形码的 C# API
Aspose.BarCode for .NET 是一个强大的 C# API,用于条码生成和识别。使用 API,您可以处理各种条码符号。此外,API 支持使用 UTF-8 编码生成条形码。您可以 下载 API 或使用 NuGet 安装它。
PM> Install-Package Aspose.BarCode
在 C# 中使用 UTF-8 编码生成条形码
以下是使用 UTF-8 编码生成条形码的步骤。
- 首先,创建一个 BarcodeGenerator 类的实例,并使用 EncodeTypes 指定条形码类型。
- 使用 BarcodeGenerator.CodeText 属性设置条形码的文本。
- 使用 BarcodeGenerator.Parameters.Barcode.QR.CodeTextEncoding 属性设置 UTF-8 文本编码(根据您在 BarcodeGenerator 构造函数中指定的条形码类型替换 QR)。
- 使用 BarcodeGenerator.GenerateBarCodeImage() 方法生成条形码并将返回的图像保存到 Bitmap 对象中。
- 最后,使用 Bitmap.Save(String) 方法将条形码图像保存为文件。
以下代码示例展示了如何在 C# 中使用 UTF-8 编码生成条形码。
// 创建条形码生成器
BarcodeGenerator generator = new BarcodeGenerator(EncodeTypes.Pdf417);
// 设置条码文字
generator.CodeText = "منحة";
// 设置分辨率
generator.Parameters.Resolution = 400;
// 设置编码类型
generator.Parameters.Barcode.Pdf417.CodeTextEncoding = Encoding.UTF8;
// 生成条形码
Bitmap imgBarcode = generator.GenerateBarCodeImage();
// 保存条形码图像
imgBarcode.Save("generate-barcode.png");
使用 C# 读取 UTF-8 编码的条形码
以下是使用 C# 识别 UTF-8 编码条形码的步骤。
- 使用 BarCodeReader 类加载条码图像。
- 循环通过 BarCodeReader.ReadBarCodes() 方法返回的每个 BarCodeResult。
- 创建一个 Encoding 类的对象并将编码设置为 UTF-8。
- 从 BarCodeResult 对象返回的字节中获取 char 数组。
- 从字符构建 Unicode 字符串以获取条形码文本。
- 最后,打印检索到的条形码文本。
以下代码示例展示了如何在 C# 中使用 UTF-8 编码识别条形码。
// 识别上述条码
using (BarCodeReader reader = new BarCodeReader("generate-barcode.png"))
{
// 读取条形码
foreach (BarCodeResult result in reader.ReadBarCodes())
{
// 设置编码
Encoding unicode = Encoding.UTF8;
// 从字节中获取字符数组
char[] unicodeChars = new char[unicode.GetCharCount(result.CodeBytes, 0, result.CodeBytes.Length)];
unicode.GetChars(result.CodeBytes, 0, result.CodeBytes.Length, unicodeChars, 0);
// 构建 unicode 字符串
string strCodeText = new string(unicodeChars);
Console.WriteLine(strCodeText);
}
}
获取免费 API 许可证
如果您有兴趣尝试和使用 API,您可以获得免费的临时许可证。
结论
在本文中,您学习了如何在 C# 中使用 UTF-8 编码生成条形码。此外,您还了解了如何识别和读取 UTF-8 编码的条形码。您可以使用 文档 探索有关 C# 条形码 API 的更多信息。