qr-pure - v2.1.0
    Preparing search index...

    Class AlphanumericEncoder

    Codificador de modo Alfanumérico para códigos QR.

    El modo Alfanumérico codifica un conjunto limitado de 45 caracteres:

    • Dígitos: 0-9
    • Letras mayúsculas: A-Z
    • Símbolos: espacio, $, %, *, +, -, ., /, :

    Eficiencia: 5.5 bits por carácter (comparado con 8 bits en modo Byte).

    Los caracteres se agrupan en pares y cada par se codifica como un número de 11 bits. Caracteres sueltos usan 6 bits.

    Fórmula para pares: (valor1 × 45) + valor2 → 11 bits

    const encoder = new AlphanumericEncoder();

    // Verificar si puede codificar
    encoder.canEncode('HELLO'); // true
    encoder.canEncode('HELLO 123'); // true
    encoder.canEncode('hello'); // false (minúsculas no soportadas)

    // Codificar texto
    const bits = encoder.encode('AC-42');
    // Pares: 'AC' → (10×45)+12 = 462 → 00111001110 (11 bits)
    // '-4' → (41×45)+4 = 1849 → 11100111001 (11 bits)
    // '2' → 2 → 000010 (6 bits)

    Hierarchy

    • BaseEncoder
      • AlphanumericEncoder
    Index

    Constructors

    Properties

    mode: EncodingMode = "alphanumeric"

    Modo de codificación.

    modeIndicator: string = MODE_INDICATORS.alphanumeric

    Indicador de modo Alfanumérico: '0010'.

    Methods

    • Verifica si el texto puede ser codificado en modo Alfanumérico.

      Parameters

      • text: string

        Texto a verificar

      Returns boolean

      true si todos los caracteres son alfanuméricos válidos

      Solo acepta los 45 caracteres del conjunto alfanumérico: 0-9, A-Z, espacio, $, %, *, +, -, ., /, :

      const encoder = new AlphanumericEncoder();
      encoder.canEncode('HELLO'); // true
      encoder.canEncode('HELLO WORLD'); // true
      encoder.canEncode('AC-42'); // true
      encoder.canEncode('50%'); // true
      encoder.canEncode('hello'); // false (minúsculas)
      encoder.canEncode('Hi!'); // false (minúsculas y !)
      encoder.canEncode(''); // false (vacío)
    • Codifica texto en modo Alfanumérico.

      Parameters

      • text: string

        Texto a codificar (mayúsculas, dígitos, símbolos permitidos)

      Returns string

      Cadena de bits codificados

      Agrupa los caracteres en pares y los codifica:

      • Par de caracteres: valor1 × 45 + valor2 → 11 bits
      • Carácter suelto: valor → 6 bits

      Error si el texto contiene caracteres no alfanuméricos

      const encoder = new AlphanumericEncoder();
      encoder.encode('AB'); // (10×45)+11 = 461 → '00111001101' (11 bits)
      encoder.encode('A'); // 10 → '001010' (6 bits)
      encoder.encode('HELLO'); // 'HE' + 'LL' + 'O' → 11 + 11 + 6 = 28 bits
    • Genera el segmento completo de datos codificados.

      Parameters

      • text: string

        Texto a codificar

      • version: QRVersion

        Versión del QR

      Returns string

      Cadena de bits completa del segmento

      Incluye: modo + CCI + datos codificados

      const segment = encoder.encodeSegment('Hi', 1);
      // '0100' + '00000010' + '01001000 01101001'
    • Obtiene el conteo de caracteres para el CCI.

      Parameters

      • text: string

        Texto a contar

      Returns number

      Número de caracteres

      Por defecto es la longitud del texto. Puede ser sobrescrito para modos que cuentan diferente (ej: Kanji).

    • Obtiene el número de bits para el Character Count Indicator.

      Parameters

      Returns number

      Número de bits para el CCI

      Para modo Alfanumérico:

      • Versiones 1-9: 9 bits (hasta 511 caracteres)
      • Versiones 10-26: 11 bits (hasta 2047 caracteres)
      • Versiones 27-40: 13 bits (hasta 8191 caracteres)
      const encoder = new AlphanumericEncoder();
      encoder.getCharacterCountBits(1); // 9
      encoder.getCharacterCountBits(9); // 9
      encoder.getCharacterCountBits(10); // 11
      encoder.getCharacterCountBits(26); // 11
      encoder.getCharacterCountBits(27); // 13
      encoder.getCharacterCountBits(40); // 13
    • Genera el Character Count Indicator.

      Parameters

      • text: string

        Texto a codificar

      • version: QRVersion

        Versión del QR

      Returns string

      Cadena de bits del CCI

      encoder.getCharacterCountIndicator('Hello', 1); // '00000101' (5 en 8 bits)