Как сканировать QR-коды с использованием Unicode и ECI Encoding с помощью Aspose.BarCode для .NET

Как сканировать QR-коды с использованием Unicode и ECI Encoding с помощью Aspose.BarCode для .NET

В этой статье объясняется, как сканировать и декодировать QR-коды, содержащие текст Unicode или данные, зашифрованные ECI (Extended Channel Interpretation), используя Aspose.BarCode для .NET. Коды Unikode QR позволяют шифровывать и экстрактировать данные на любом языке — в том числе эмоги, символы CJK и специальные символи — делая их идеальными для глобальных, многоязычных приложений.

Реальные мировые проблемы

Многие корпоративные и потребительские QR-коды сегодня несут информацию на нескольких языках, или включают в себя бинарные данные и специальные символы. Стандартные читатели баркода могут вернуть заблужденный выход, если они не справляются с Unicode или ECI кодирование. Разработчикам нужен прочный способ правильно прочитать эти коды.

Решение обзор

Aspose.BarCode для .NET поддерживает чтение и декодирование Unicode и ECI-кодированных QR кодов. Библиотека автоматически распознает кодирующие знаки и предоставляет выход как стандартные C# строки, сохраняя все символы и скрипты.

Предупреждения

Прежде чем начать, убедитесь, что у вас есть:

  • Visual Studio 2019 или позднее
  • .NET 6.0 или более поздний (или .NET Framework 4.6.2+)
  • Aspose.BarCode для .NET установлен через NuGet
  • Основное знание C#
PM> Install-Package Aspose.BarCode

Step-by-Step реализация

Шаг 1: Инсталляция и настройка Aspose.BarCode

Добавьте пакет Aspose.BarCode и включайте необходимое название пространства:

using Aspose.BarCode.BarCodeRecognition;

Шаг 2: Подготовьте свои входные данные

Получить или генерировать файл изображения, содержащий Unicode или Здесь QR код (например, «unicode_qr_sample.png").

string imagePath = "unicode_qr_sample.png";

Шаг 3: Настройка QR Recognition для Unicode/ECI

Создайте баркодный читатель, как вы хотели бы для любого стандартного QR-кода:

BarCodeReader reader = new BarCodeReader(imagePath, DecodeType.QR);

Шаг 4: Выполнение процесса сканирования QR

Читайте и показывайте выход, который может включать скрипты Unicode или эмоги:

foreach (BarCodeResult result in reader.ReadBarCodes())
{
    Console.WriteLine($"Type: {result.CodeTypeName}");
    Console.WriteLine($"Text: {result.CodeText}");
}

Шаг 5: Процесс выхода и проверка кодирования

Выходный ряд будет содержать все знаки Unicode, как присутствуют в QR-коде.Для бинарных (ECI) данных, обрабатывайте выход в соответствии с потребностями вашего приложения.

Шаг 6: Управление ошибками

try
{
    using (BarCodeReader reader = new BarCodeReader(imagePath, DecodeType.QR))
    {
        foreach (BarCodeResult result in reader.ReadBarCodes())
        {
            Console.WriteLine($"Type: {result.CodeTypeName}");
            Console.WriteLine($"Text: {result.CodeText}");
        }
    }
}
catch (Exception ex)
{
    Console.WriteLine($"Error: {ex.Message}");
}

Полный пример

using Aspose.BarCode.BarCodeRecognition;
using System;

class Program
{
    static void Main()
    {
        string imagePath = "unicode_qr_sample.png";
        try
        {
            using (BarCodeReader reader = new BarCodeReader(imagePath, DecodeType.QR))
            {
                foreach (BarCodeResult result in reader.ReadBarCodes())
                {
                    Console.WriteLine($"Type: {result.CodeTypeName}");
                    Console.WriteLine($"Text: {result.CodeText}");
                }
            }
        }
        catch (Exception ex)
        {
            Console.WriteLine($"Error: {ex.Message}");
        }
    }
} 

Используйте случаи и приложения

  • Многоязычное обозначение: QR-коды с информацией на любом языке (китайский, арабская, японская и т.д.)
  • Международные платежи и билеты: Напишите имена клиентов, города или инструкции в коренных скриптах
  • Бинарные данные и эмоции: QR-коды, содержащие нетекстовые символы для социального, маркетингового или безопасного использования

Общие вызовы и решения

Проблема 1: Затерянный или непрочитанный выпускРешение: Assure QR был создан с правильной поддержкой Unicode/ECI. Aspose.BarCode читает все такие коды автоматически.

Проблема 2: Специальные скрипты, не отображающиеРешение: Убедитесь, что интерфейс и записи вашего приложения поддерживают выход Unicode.

Проблема 3: Управление бинарными платежными нагрузкамиРешение: Экстракт бинарный (byte array) в случае необходимости и обработка по вашим требованиям.

Рассмотрим производительность

  • Используйте кодирование UTF-8 во всех журналах, интерфейсах и хранилищах
  • Быстрый доступ к читателям
  • Тест-декодирование с помощью QR-кодов из разных языков и регионов

Лучшие практики

  • Всегда проверяйте декодированные данные Unicode/ECI перед обработкой
  • Выход записи с помощью инструментов Unicode Aware и редакторов
  • Используйте соответствующую обработку ошибок для краевых случаев
  • Тест с эмоциями, символами и редкими скриптами для обеспечения надежности

Развитые сценарии

Декодирование и дисплей Emojis из QR

// QR code contains: "Contact us: 😊📱"
foreach (BarCodeResult result in reader.ReadBarCodes())
{
    Console.WriteLine(result.CodeText); // Outputs emojis and text
}

Обработка бинарных данных в ECI-кодированном QR

foreach (BarCodeResult result in reader.ReadBarCodes())
{
    byte[] binaryData = result.Extended.QR.QRBinaryData;
    // Process binary data as needed
}

Заключение

С помощью Aspose.BarCode для .NET можно точно декодировать Unicode и ECI-кодированные QR коды, позволяя прочным глобальным и многоязычным приложениям для любого региона или скрипта.

Для получения дополнительной информации см. Aspose.BarCode Огневая ссылка .

 Русский