# Codi 128

El codi 128 és una simbologia de codi de barres lineal d'alta densitat definida a la norma ISO/IEC 15417:2007. S'utilitza per a codis de barres alfanumèrics o només numèrics. Pot codificar els 128 caràcters d'ASCII i, mitjançant l'ús d'un símbol d'extensió (FNC4), els caràcters llatí-1 definits a ISO/IEC 8859-1. Generalment resulta en codis de barres més compactes en comparació amb altres mètodes com el Codi 39, especialment quan els textos contenen majoritàriament dígits. El codi 128 va ser desenvolupat per Computer Identics Corporation el 1981.
GS1-128 (abans conegut com a UCC/EAN-128) és un subconjunt del codi 128 i s'utilitza àmpliament a tot el món a les indústries d'enviament i embalatge com a codi d'identificació del producte per als nivells de contenidors i palets de la cadena de subministrament.

## Especificació

Un codi de barres de codi 128 té set seccions:
* Zona reservada
* Símbol d'inici
* Dades codificades
* Símbol de verificació (obligatori)
* Símbol de parada
* Barra final (sovint considerada part del símbol de parada)
* Zona reservada
El símbol de verificació es calcula a partir d'una suma ponderada (mòdul 103) de tots els símbols.

### Subtipus

El codi 128 inclou 108 símbols: 103 símbols de dades, 3 símbols d'inici i 2 símbols de parada. Cada símbol consta de tres barres negres i tres espais blancs d'amplada variable. Totes les amplades són múltiples d'un "mòdul" bàsic. Cada barra i espai té d'1 a 4 mòduls d'amplada, i els símbols tenen una amplada fixa: la suma de les amplades de les tres barres negres i les tres barres blanques és d'11 mòduls.
El patró de parada es compon de dos símbols superposats i té quatre barres. El patró d'aturada permet l'exploració bidireccional. Quan el patró de parada es llegeix d'esquerra a dreta (el cas habitual), es reconeix el símbol de parada (seguit d'una barra de 2 mòduls). Quan el patró de parada es llegeix de dreta a esquerra, es reconeix el símbol de parada inversa (seguit d'una barra de 2 mòduls). Un escàner que veu el símbol de parada inversa sap que ha de saltar la barra de 2 mòduls i llegir la resta del codi de barres al revés.
Malgrat el seu nom, el codi 128 no té 128 símbols diferents, de manera que no pot representar directament 128 punts de codi. Per representar els 128 valors ASCII, es desplaça entre tres conjunts de codis (A, B, C). En conjunt, els conjunts de codis A i B cobreixen els 128 caràcters ASCII. El conjunt de codis C s'utilitza per codificar de manera eficient les cadenes de dígits. El subconjunt inicial es selecciona mitjançant el símbol d'inici adequat. Dins de cada conjunt de codis, alguns dels 103 punts de codi de dades es reserven per passar a un dels altres dos conjunts de codis. Els canvis es fan utilitzant els punts de codi 98 i 99 als conjunts de codis A i B, 100 als conjunts de codis A i C i 101 als conjunts de codis B i C per canviar entre ells):
* 128A (conjunt de codis A) – Caràcters ASCII del 00 al 95 (0–9, A–Z i codis de control), caràcters especials i FNC 1–4
* 128B (conjunt de codis B) – Caràcters ASCII del 32 al 127 (0–9, A–Z, a–z), caràcters especials i FNC 1–4
* 128C (conjunt de codis C) – 00–99 (codifica dos dígits amb un únic punt de codi) i FNC1
L'amplada mínima de la zona tranquil·la a l'esquerra i a la dreta del codi 128 és 10x, on x és l'amplada mínima d'un mòdul. És obligatori al costat esquerre i dret del codi de barres.

## Referències

* ↑ «ISO/IEC 15417:2007 - Information technology -- Automatic identification and data capture techniques -- Code 128 bar code symbology specification» (en anglès). www.iso.org. [Consulta: 15 febrer 2018].
* ↑ «CODE 128 and GS1-128» (en anglès). Barcode Information & Tips. Keyence. [Consulta: 6 novembre 2023].
* ↑ «Understanding the Basics of Code 128 Barcodes» (en anglès australià), 22-05-2023. [Consulta: 9 novembre 2024].
* ↑ «Code-128 Bar Code FAQ & Tutorial | BarcodeFAQ.com» (en anglès americà), 19-07-2018. [Consulta: 9 novembre 2024].