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

    Class ByteEncoder

    Codificador de modo Byte para códigos QR.

    El modo Byte codifica cada carácter como 8 bits. Soporta cualquier byte (0-255), típicamente usando ISO-8859-1 o UTF-8.

    Es el modo más versátil pero menos eficiente en espacio:

    • Numérico: 3.33 bits/carácter
    • Alfanumérico: 5.5 bits/carácter
    • Byte: 8 bits/carácter
    const encoder = new ByteEncoder();

    // Codificar texto
    const bits = encoder.encode('Hello');
    // '0100100001100101011011000110110001101111'

    // Segmento completo con modo y CCI
    const segment = encoder.encodeSegment('Hi', 1);
    // '0100' + '00000010' + '0100100001101001'

    Hierarchy

    • BaseEncoder
      • ByteEncoder
    Index

    Constructors

    Properties

    mode: EncodingMode = "byte"

    Modo de codificación.

    modeIndicator: string = MODE_INDICATORS.byte

    Indicador de modo Byte: '0100'.

    Methods

    • Verifica si el texto puede ser codificado en modo Byte.

      Parameters

      • text: string

        Texto a verificar

      Returns boolean

      true si todos los caracteres están en el rango 0-255

      El modo Byte acepta cualquier carácter con código 0-255. Para caracteres fuera de este rango (Unicode > 255), se necesitaría codificación UTF-8 que puede producir múltiples bytes.

      const encoder = new ByteEncoder();
      encoder.canEncode('Hello'); // true
      encoder.canEncode('Héllo'); // true (é = 233)
      encoder.canEncode('你好'); // false (fuera del rango ISO-8859-1)
    • Codifica texto en modo Byte.

      Parameters

      • text: string

        Texto a codificar

      Returns string

      Cadena de bits (8 bits por carácter)

      Convierte cada carácter a su código ASCII/ISO-8859-1 representado en 8 bits.

      const encoder = new ByteEncoder();
      encoder.encode('A'); // '01000001' (65 en binario)
      encoder.encode('Hi'); // '0100100001101001'
      encoder.encode('123'); // '001100010011001000110011'
    • 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'
    • Codifica texto con soporte UTF-8.

      Parameters

      • text: string

        Texto a codificar (puede incluir Unicode)

      Returns number[]

      Array de bytes UTF-8

      Convierte el texto a bytes UTF-8, permitiendo caracteres Unicode fuera del rango ISO-8859-1.

      const encoder = new ByteEncoder();
      encoder.encodeUTF8('é'); // [195, 169] (2 bytes)
      encoder.encodeUTF8('你'); // [228, 189, 160] (3 bytes)
    • 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 Byte:

      • Versiones 1-9: 8 bits
      • Versiones 10-40: 16 bits
      const encoder = new ByteEncoder();
      encoder.getCharacterCountBits(1); // 8
      encoder.getCharacterCountBits(9); // 8
      encoder.getCharacterCountBits(10); // 16
      encoder.getCharacterCountBits(40); // 16
    • 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)
      
    • Obtiene la longitud en bytes del texto codificado en UTF-8.

      Parameters

      • text: string

        Texto a medir

      Returns number

      Número de bytes UTF-8

      const encoder = new ByteEncoder();
      encoder.getUTF8ByteLength('Hi'); // 2
      encoder.getUTF8ByteLength('你好'); // 6