Кодировать расширенные символы ASCII в штрих-коде Code 128

Я хочу закодировать строку "Qui С ones" в штрих-коде Code 128. Можно ли включить расширенные символы ASCII в кодировку Code 128?,

Я провел некоторое исследование в Google, которое показало, что это возможно с помощью FNC4, но я не нашел точно, как это сделать. Было бы очень полезно, если бы кто-то мог помочь мне с решением на языке Си.

1 ответ

Решение

Символы "расширенного ASCII" со значениями байтов от 128 до 255 действительно могут быть представлены в кодировке кода 128 с помощью специального символа функции FNC4. Для общего использования (в открытых приложениях) необходимо, чтобы такие символы принадлежали к набору символов ISO-8859-1 (Latin1).

Один символ FNC4 действует как переход к расширенному набору символов для следующего символа, тогда как два последовательных символа FNC4 действуют как фиксатор. Эффект заключается в переключении старшего бита (в основном для сложения или вычитания 128) 8-битного значения ASCII затронутых символов.

В вашем примере "QuiÑones" символ "Ñ" представлен байтовым значением 209 в наборе символов ISO-8859-1 по умолчанию, то есть 128+81. ASCII 81 преобразуется в "Q", поэтому вам требуется последовательность FNC4 Q представлять "С".

Эффективная кодировка 128 этих кодов выглядит следующим образом:

[104/START-B] [49/Q] [85/u] [73/i] [100/FNC4] [49/Q] [79/o] [78/n] [69/e] [83/s] [93/check-digit] [106/STOP]

Некоторые приложения и библиотеки штрих-кодов будут выполнять расширенное кодирование символов на основе FNC4, как показано в примере ниже. Большинство не делает, но это должно позволить вам указать символ FNC4 напрямую, чтобы вы могли вручную управлять процессом, используя вышеописанную технику, например: Qui{FNC4}Qones

Символ кода 128 выглядит следующим образом:

Код 128, содержащий слово 'QuiÑones'

Он был создан с помощью онлайн-генератора штрих-кодов со следующими параметрами:

Barcode:  Code 128
Contents: Qui^209ones
Options:  parse height=0.5
Другие вопросы по тегам