How to write Unicode and International Languages Barcodes in C#

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

When writing international languages barcodes, there are a few factors that developers must consider, such as the length of the string and the barcode writing encoding that is appropriate for the string value, as well as the general purpose of the output barcode. IronBarcode fully supports generating and writing barcodes in Unicode, allowing developers to cross borders and have their products placed internationally with barcodes with ease. The following how-to guide provides code examples and considerations that developers must consider when generating them.

Quickstart: Create a Unicode Barcode with DataMatrix Encoding

This quick example shows how developers can instantly generate a barcode containing mixed-language Unicode text using IronBarcode in just one line, then save it as an image—get started effortlessly.

Nuget IconGet started making PDFs with NuGet now:

  1. Install IronBarcode with NuGet Package Manager

    PM > Install-Package BarCode

  2. Copy and run this code snippet.

    var barcode = IronBarCode.BarcodeWriter.CreateBarcode("123 英語 اللغة العربية", IronBarCode.BarcodeWriterEncoding.DataMatrix);
    barcode.SaveAsImage("unicode.png");
  3. Deploy to test on your live environment

    Start using IronBarcode in your project today with a free trial
    arrow pointer

Writing Unicode Barcode Example

Thanks to IronBarcode's robust support for writing and generating barcodes in Unicode, developers can confidently add and create strings that contain multiple languages to use as a value. For instance, a string that includes a mix of Chinese, Arabic, and Thai can be easily handled, showcasing the tool's versatility and empowering developers to work with diverse language sets.

Below is the following string that we'll use as a barcode value.

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

We then call the BarcodeWriter.CreateBarcode method to create the desired barcode. The method takes in two values: the text and the encoding.

: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

This is the file that the code produced:

Output Unicode Barcode

Unicode Barcode Writing Encoding

Due to how Unicode works, only selected Barcode types natively support them and directly store Unicode text without encoding workarounds. Aside from the DataMatrix encoding we've done above, here's a quick list of encoding types that support Unicode.

Barcode Type Unicode Support Best For Max Capacity
QR Code Full UTF-8 (Kanji mode for CJK) Marketing, multilingual labels, IDs ~3,000 chars (alphanumeric)
Data Matrix With ECI (Extended Channel Interpretation) Industrial, small item labels ~1,556 bytes
PDF417 With ECI (but limited scanner support) Documents (boarding passes, IDs) ~1,100 bytes
Aztec Code Native UTF-8 Mobile tickets, airline passes ~3,000 chars

Note the difference in the number of characters you can fit with each barcode encoding type. For example, using the string above with PDF417 won't work, as it contains more than 500 Unicode characters. In this case, you need to implement a workaround to make it work. As such, it's important to note the length of your string.

The Barcode types listed above are all available from BarcodeWriterEncoding.

For a complete list of all available barcode encoding types from BarcodeWriterEncoding, please refer here.

Reading the Unicode Barcode

Aside from writing in Unicode, IronBarcode also supports reading Unicode barcodes. To read the barcode, we use the Read method from the BarcodeReader class with the provided parameter being the Unicode barcode.

Here's a quick example using the Unicode barcode generated from above:

: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

Note that although you can output the text value to a terminal with Console.WriteLine, the terminal doesn't natively support displaying Unicode characters and requires additional setup. In this example, we directed the output to a txt file instead.

Output

alt text

Preguntas Frecuentes

¿Por qué necesitaría generar códigos de barras Unicode?

Generar códigos de barras Unicode es esencial para admitir lenguajes internacionales como el chino, árabe y otros, permitiendo a las empresas operar en diferentes regiones y comunicarse eficazmente con diversas audiencias.

¿Puede IronBarcode manejar caracteres Unicode?

Sí, IronBarcode admite la generación de códigos de barras con caracteres Unicode, lo que permite codificar texto en varios idiomas internacionales, incluidos el chino y árabe.

¿Qué tipos de códigos de barras puedo crear con caracteres Unicode utilizando IronBarcode?

Con IronBarcode, puedes crear varios tipos de códigos de barras, como códigos QR y Code 128, utilizando caracteres Unicode. Esta flexibilidad es ideal para aplicaciones que requieren internacionalización.

¿Es posible personalizar la apariencia de los códigos de barras Unicode en IronBarcode?

Sí, IronBarcode te permite personalizar la apariencia de los códigos de barras Unicode, incluyendo el tamaño, color y fuente del texto, asegurando que los códigos de barras cumplan con tus requisitos específicos de diseño y marca.

¿Necesito software especial para leer códigos de barras Unicode creados con IronBarcode?

No se requiere software especial para leer códigos de barras Unicode creados con IronBarcode. Los escáneres de códigos de barras estándar y las aplicaciones de software capaces de leer el formato de código de barras específico pueden interpretarlos.

¿Puedo generar códigos de barras con una mezcla de caracteres Unicode y ASCII?

Sí, IronBarcode admite la generación de códigos de barras que contienen una mezcla de caracteres Unicode y ASCII, ofreciendo flexibilidad en la codificación de una amplia gama de datos.

¿Cómo maneja IronBarcode los idiomas RTL (de derecha a izquierda) como el árabe?

IronBarcode es capaz de manejar idiomas de derecha a izquierda, como el árabe, codificando adecuadamente la dirección del texto en los códigos de barras generados, asegurando una representación precisa y legibilidad.

¿Cuáles son las ventajas de usar IronBarcode para la generación de códigos de barras Unicode?

IronBarcode ofrece facilidad de uso, compatibilidad con varios formatos de códigos de barras, soporte para idiomas internacionales y opciones de personalización, convirtiéndolo en una opción ideal para generar códigos de barras Unicode.

¿Existe un límite para el número de caracteres que puedo codificar en un código de barras Unicode con IronBarcode?

El número de caracteres que puedes codificar en un código de barras Unicode con IronBarcode depende del tipo y tamaño del código de barras. Sin embargo, IronBarcode está diseñado para manejar eficientemente grandes cantidades de datos.

¿Puede IronBarcode generar códigos de barras tanto para aplicaciones de escritorio como móviles?

Sí, IronBarcode puede generar códigos de barras adecuados tanto para aplicaciones de escritorio como móviles, proporcionando versatilidad a través de diferentes plataformas y dispositivos.

Curtis Chau
Escritor Técnico

Curtis Chau tiene una licenciatura en Ciencias de la Computación (Carleton University) y se especializa en el desarrollo front-end con experiencia en Node.js, TypeScript, JavaScript y React. Apasionado por crear interfaces de usuario intuitivas y estéticamente agradables, disfruta trabajando con frameworks modernos y creando manuales bien ...

Leer más
¿Listo para empezar?
Nuget Descargas 1,935,276 | Versión: 2025.11 recién lanzado