Encoding mode

Juga disebut: mode data, mode numerik, mode alfanumerik, mode byte, mode kanji, encoding modes

Definisi

Encoding mode adalah cara QR code mengemas karakter menjadi bit. Empat mode utamanya adalah numerik, alfanumerik, byte, dan kanji, dan satu kode bisa berpindah-pindah di antara mode itu.

Empat mode utama

Setiap mode menukar rentang karakter dengan kepadatan. Mode numerik hanya menangani digit tetapi mengemas tiga digit ke dalam 10 bit, sedangkan mode byte menangani byte apa pun tetapi memakai 8 bit untuk masing-masingnya.

Mode alfanumerik mencakup set 45 karakter: digit 0–9, huruf kapital A–Z, spasi, dan simbol $ % * + - . / serta titik dua. Huruf kecil tidak termasuk dalam set ini, itulah sebabnya URL yang seluruhnya huruf kapital bisa menghasilkan kode lebih kecil daripada URL yang sama dalam huruf kecil.

  • Numerik: digit 0–9, 10 bit per 3 digit
  • Alfanumerik: 45 karakter, 11 bit per 2 karakter
  • Byte: nilai 8-bit apa pun, 8 bit per byte
  • Kanji: karakter dua-byte Shift JIS, masing-masing 13 bit

Mode indicator dan segmen

Setiap rangkaian data diawali mode indicator 4-bit dan jumlah karakter, yang panjangnya bergantung pada mode dan versi. Sebuah kode bisa berisi beberapa segmen semacam itu, misalnya numerik untuk deretan panjang digit dan byte untuk sisanya, yang dapat membuat hasilnya lebih kecil.

Indikator 4-bit lain menandakan fitur, bukan set karakter: ECI untuk menyatakan encoding karakter, structured append untuk membagi data ke beberapa kode, dan FNC1 untuk GS1 serta format data industri lainnya. Terminator berupa empat bit nol mengakhiri data.

  • Numerik 0001, alfanumerik 0010, byte 0100, kanji 1000
  • ECI 0111, structured append 0011
  • FNC1 posisi pertama 0101, posisi kedua 1001
  • Terminator 0000

Mode byte dan set karakter

Interpretasi bawaan standar untuk mode byte adalah ISO-8859-1 (Latin-1), tetapi sebagian besar generator kini menulis UTF-8 agar huruf beraksen, aksara lain, dan emoji tetap utuh. Pembaca biasanya mendeteksi UTF-8 dengan memeriksa byte-nya.

Jika set karakter harus tidak ambigu, header ECI dapat menyatakannya secara eksplisit. Tanpa itu, pembaca kadang salah menebak dan menampilkan karakter kacau.

Pertanyaan yang sering diajukan

Mengapa QR code saya lebih besar jika memakai huruf kecil?

Huruf kecil tidak ada dalam set alfanumerik, sehingga teks harus memakai mode byte dengan 8 bit per karakter, bukan 5,5. Huruf kapital, digit, dan beberapa simbol dikemas lebih padat.

Bisakah QR code menyimpan emoji atau teks non-Latin?

Bisa, dalam mode byte dengan UTF-8, yang didukung sebagian besar generator dan pembaca ponsel. Setiap karakter seperti itu memakan beberapa byte, sehingga kapasitas berkurang.

Bisakah satu QR code mencampur data numerik dan teks?

Bisa. Data bisa dibagi menjadi segmen, masing-masing dengan modenya sendiri, dan encoder yang baik memilih pembagian yang menghasilkan kode terkecil.

Sumber dan standar

Semua istilah