如何在 C# 中编写 Unicode 和国际语言条形码

This article was translated from English: Does it need improvement?
Translated
View the article in English

编写国际语言条形码时,开发人员必须考虑一些因素,例如字符串的长度、适合字符串值的条形码编写编码以及输出条形码的一般用途。 IronBarcode 完全支持生成和写入 Unicode 条形码,使开发人员能够轻松地跨越国界,并通过条形码将其产品推向国际市场。 以下操作指南提供了代码示例以及开发人员在生成代码时必须考虑的事项。

快速入门:使用 DataMatrix 编码创建 Unicode 条形码

这个简单的示例展示了开发人员如何使用 IronBarcode 仅用一行代码即可立即生成包含混合语言 Unicode 文本的条形码,然后将其保存为图像——轻松上手。

Nuget Icon立即开始使用 NuGet 创建 PDF 文件:

  1. 使用 NuGet 包管理器安装 IronBarcode

    PM > Install-Package BarCode

  2. 复制并运行这段代码。

    var barcode = IronBarCode.BarcodeWriter.CreateBarcode("123 英語 اللغة العربية", IronBarCode.BarcodeWriterEncoding.DataMatrix);
    barcode.SaveAsImage("unicode.png");
  3. 部署到您的生产环境中进行测试

    立即开始在您的项目中使用 IronBarcode,免费试用!
    arrow pointer

编写 Unicode 条形码示例

由于 IronBarcode 对以 Unicode 编写和生成条形码提供了强大的支持,开发人员可以自信地添加和创建包含多种语言的字符串作为值。 例如,可以轻松处理包含中文、阿拉伯语和泰语混合的字符串,这展现了该工具的多功能性,并使开发人员能够处理各种语言集。

下面这个字符串将用作条形码值。

string unicodeText = "周態告応立待太記行神正用真最。音日独素円政進任見引際初携食。更火識将回興継時億断保媛全職。文造画念響竹都務済約記求生街東。天体無適立年保輪動元念足総地作靖権瀬内。失文意芸野画美暮実刊切心。感変動技実視高療試意写表重車棟性作家薄井。陸瓶右覧撃稿法真勤振局夘決。任堀記文市物第前兜純響限。囲石整成先尾未展退幹販山令手北結。أم يذكر النفط قبضتهم على, الصين وفنلندا ما حدى. تم لكل أملا المنتصر, ٣٠ حدى مارد القوى. شرسة للسيطرة قامفي. حتى أم يطول المحيط, زهاء وحلفاؤها من فعل. لم قامت الجو الساحلية وتم, ويعزى واقتصار قبل كل。ภคนทลาพาธสตารเซฟต แชมป มารเกตตงลมเหลวโยเกรต แลนดบาบนอมครม รสโซ แบรนดไคลแมกซ พซซาโมเดลเสอโครง มอบโซนรายชอ แอดมชชน ดอกเตอร พะเรอ มารคเจไดโมจราสเบอรร เอนทรานซออดชนศลปวฒนธรรมเปราะบาง โมจซเรยสวอลนตทรป";
string unicodeText = "周態告応立待太記行神正用真最。音日独素円政進任見引際初携食。更火識将回興継時億断保媛全職。文造画念響竹都務済約記求生街東。天体無適立年保輪動元念足総地作靖権瀬内。失文意芸野画美暮実刊切心。感変動技実視高療試意写表重車棟性作家薄井。陸瓶右覧撃稿法真勤振局夘決。任堀記文市物第前兜純響限。囲石整成先尾未展退幹販山令手北結。أم يذكر النفط قبضتهم على, الصين وفنلندا ما حدى. تم لكل أملا المنتصر, ٣٠ حدى مارد القوى. شرسة للسيطرة قامفي. حتى أم يطول المحيط, زهاء وحلفاؤها من فعل. لم قامت الجو الساحلية وتم, ويعزى واقتصار قبل كل。ภคนทลาพาธสตารเซฟต แชมป มารเกตตงลมเหลวโยเกรต แลนดบาบนอมครม รสโซ แบรนดไคลแมกซ พซซาโมเดลเสอโครง มอบโซนรายชอ แอดมชชน ดอกเตอร พะเรอ มารคเจไดโมจราสเบอรร เอนทรานซออดชนศลปวฒนธรรมเปราะบาง โมจซเรยสวอลนตทรป";
Dim unicodeText As String = "周態告応立待太記行神正用真最。音日独素円政進任見引際初携食。更火識将回興継時億断保媛全職。文造画念響竹都務済約記求生街東。天体無適立年保輪動元念足総地作靖権瀬内。失文意芸野画美暮実刊切心。感変動技実視高療試意写表重車棟性作家薄井。陸瓶右覧撃稿法真勤振局夘決。任堀記文市物第前兜純響限。囲石整成先尾未展退幹販山令手北結。أم يذكر النفط قبضتهم على, الصين وفنلندا ما حدى. تم لكل أملا المنتصر, ٣٠ حدى مارد القوى. شرسة للسيطرة قامفي. حتى أم يطول المحيط, زهاء وحلفاؤها من فعل. لم قامت الجو الساحلية وتم, ويعزى واقتصار قبل كل。ภคนทลาพาธสตารเซฟต แชมป มารเกตตงลมเหลวโยเกรต แลนดบาบนอมครม รสโซ แบรนดไคลแมกซ พซซาโมเดลเสอโครง มอบโซนรายชอ แอดมชชน ดอกเตอร พะเรอ มารคเจไดโมจราสเบอรร เอนทรานซออดชนศลปวฒนธรรมเปราะบาง โมจซเรยสวอลนตทรป"
$vbLabelText   $csharpLabel

然后我们调用BarcodeWriter.CreateBarcode方法来创建所需的条形码。 该方法接受两个值:文本和编码。

:path=/static-assets/barcode/content-code-examples/how-to/writing-in-unicode-write.cs
using IronBarCode;

// Unicode text with Chinese, Arabic and Thai characters
string text = "周態告応立待太記行神正用真最。音日独素円政進任見引際初携食。更火識将回興継時億断保媛全職。文造画念響竹都務済約記求生街東。天体無適立年保輪動元念足総地作靖権瀬内。失文意芸野画美暮実刊切心。感変動技実視高療試意写表重車棟性作家薄井。陸瓶右覧撃稿法真勤振局夘決。任堀記文市物第前兜純響限。囲石整成先尾未展退幹販山令手北結。أم يذكر النفط قبضتهم على, الصين وفنلندا ما حدى. تم لكل أملاً المنتصر, ٣٠ حدى مارد القوى. شرسة للسيطرة قامفي. حتى أم يطول المحيط, زهاء وحلفاؤها من فعل. لم قامت الجو الساحلية وتم, ويعزى واقتصار قبل كل。ภคันทลาพาธสตาร์เซฟตี้ แชมป์ มาร์เก็ตติ้งล้มเหลวโยเกิร์ต แลนด์บาบูนอึมครึม รุสโซ แบรนด์ไคลแม็กซ์ พิซซ่าโมเดลเสือโคร่ง ม็อบโซนรายชื่อ แอดมิชชั่น ด็อกเตอร์ พะเรอ มาร์คเจไดโมจิราสเบอร์รี เอนทรานซ์ออดิชั่นศิลปวัฒนธรรมเปราะบาง โมจิซีเรียสวอลนัตทริป";

// Create a DataMatrix barcode with the specified text
var myBarcode = BarcodeWriter.CreateBarcode(text, BarcodeWriterEncoding.DataMatrix);

// Save the barcode as an image
myBarcode.SaveAsImage("Unicode.jpeg");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

这是代码生成的文件:

输出 Unicode 条形码

Unicode条形码写入编码

由于 Unicode 的工作原理,只有部分条形码类型原生支持它们,可以直接存储 Unicode 文本而无需编码变通方法。 除了上面提到的DataMatrix编码之外,这里快速列出一些支持 Unicode 的编码类型。

条形码类型 Unicode 支持 最适合 最大容量
二维码 全 UTF-8 编码(中日韩汉字模式) 市场营销、多语言标签、ID 约3000个字符(字母数字)
Data Matrix 采用 ECI(扩展通道解释) 工业小件标签 约 1,556 字节
PDF417 支持ECI(但扫描仪支持有限) 文件(登机牌、身份证) 约 1100 字节
Aztec Code 原生 UTF-8 电子机票、航空通行证 约3000个字符

请注意每种条形码编码类型可容纳的字符数量不同。 例如,将上面的字符串与 PDF417 一起使用是行不通的,因为它包含超过 500 个 Unicode 字符。 在这种情况下,你需要采取一些变通办法才能使其正常工作。 因此,记录绳子的长度很重要。

以上列出的条形码类型均可通过BarcodeWriterEncoding获取。

有关BarcodeWriterEncoding提供的所有条形码编码类型的完整列表,请参阅此处

读取Unicode条形码

除了支持写入 Unicode 条形码外,IronBarcode 还支持读取 Unicode 条形码。 要读取条形码,我们使用BarcodeReader类的Read方法,提供的参数是 Unicode 条形码。

以下是一个使用上面生成的Unicode条形码的简单示例:

:path=/static-assets/barcode/content-code-examples/how-to/writing-in-unicode-read.cs
using IronBarCode;
using System.IO;

// Reading the Unicode barcode
BarcodeResults result = BarcodeReader.Read("Unicode.jpeg");

// Output the text value from the barcode to a txt file
File.WriteAllText("text.txt", result[0].Text);
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

请注意,虽然您可以使用Console.WriteLine将文本值输出到终端,但终端本身不支持显示 Unicode 字符,需要进行额外的设置。在本例中,我们将输出定向到了一个txt文件。

输出

alt text

常见问题解答

为什么我需要生成Unicode条形码?

生成Unicode条形码对于支持包括中文、阿拉伯文等在内的国际语言至关重要,使企业可以跨不同地区运营并与多元化受众有效沟通。

IronBarcode可以处理Unicode字符吗?

是的,IronBarcode支持生成带有Unicode字符的条形码,使得可以对包括中文和阿拉伯文在内的多种国际语言进行文本编码。

使用IronBarcode可以创建哪些类型的带Unicode字符的条形码?

使用IronBarcode,您可以创建各种类型的条形码,例如QR码和Code 128,使用Unicode字符。这种灵活性非常适合需要国际化的应用程序。

是否可以自定义IronBarcode中Unicode条形码的外观?

是的,IronBarcode允许您自定义Unicode条形码的外观,包括大小、颜色和字体,以确保条形码符合您的设计和品牌要求。

我需要特殊软件来读取用IronBarcode创建的Unicode条形码吗?

不需要特殊软件来读取用IronBarcode创建的Unicode条形码。能够读取特定条形码格式的标准条形码扫描仪和软件可以进行解读。

我可以生成包含Unicode和ASCII字符组合的条形码吗?

是的,IronBarcode支持生成包含Unicode和ASCII字符组合的条形码,提供了在编码各种数据时的灵活性。

IronBarcode如何处理诸如阿拉伯语等RTL(从右到左)语言?

IronBarcode能够处理诸如阿拉伯语等从右到左的语言,通过在生成的条形码中正确编码文本方向,确保准确表示和可读性。

使用IronBarcode生成Unicode条形码有哪些优势?

IronBarcode提供了易用性、各种条形码格式的兼容性、对国际语言的支持以及自定义选项,使其成为生成Unicode条形码的理想选择。

使用IronBarcode编码Unicode条形码的字符数量是否有限制?

使用IronBarcode编码Unicode条形码的字符数量取决于条形码类型和大小。然而,IronBarcode被设计为可以有效处理大量数据。

IronBarcode可以生成适用于桌面和移动应用程序的条形码吗?

是的,IronBarcode可以生成适用于桌面和移动应用程序的条形码,为不同平台和设备提供多样性。

Curtis Chau
技术作家

Curtis Chau 拥有卡尔顿大学的计算机科学学士学位,专注于前端开发,精通 Node.js、TypeScript、JavaScript 和 React。他热衷于打造直观且美观的用户界面,喜欢使用现代框架并创建结构良好、视觉吸引力强的手册。

除了开发之外,Curtis 对物联网 (IoT) 有浓厚的兴趣,探索将硬件和软件集成的新方法。在空闲时间,他喜欢玩游戏和构建 Discord 机器人,将他对技术的热爱与创造力相结合。

准备开始了吗?
Nuget 下载 1,979,979 | Version: 2025.11 刚刚发布