Τρόποι κωδικοποίησης

Λέγεται και: encoding modes, τρόποι δεδομένων, αριθμητικός τρόπος, αλφαριθμητικός τρόπος, τρόπος byte, τρόπος kanji

Ορισμός

Οι τρόποι κωδικοποίησης είναι οι τρόποι με τους οποίους ένας κωδικός QR πακετάρει χαρακτήρες σε bit. Οι τέσσερις κύριοι τρόποι είναι ο αριθμητικός, ο αλφαριθμητικός, ο byte και ο kanji, και ένας κωδικός μπορεί να εναλλάσσεται μεταξύ τους.

Οι τέσσερις κύριοι τρόποι

Κάθε τρόπος ανταλλάσσει εύρος χαρακτήρων με πυκνότητα. Ο αριθμητικός τρόπος διαχειρίζεται μόνο ψηφία, αλλά πακετάρει τρία από αυτά σε 10 bit, ενώ ο τρόπος byte διαχειρίζεται οποιοδήποτε byte αλλά ξοδεύει 8 bit για το καθένα.

Ο αλφαριθμητικός τρόπος καλύπτει ένα σύνολο 45 χαρακτήρων: τα ψηφία 0–9, τα κεφαλαία γράμματα A–Z, το κενό και τα σύμβολα $ % * + - . / και την άνω και κάτω τελεία. Τα πεζά γράμματα δεν ανήκουν στο σύνολο, γι' αυτό ένα URL γραμμένο εξ ολοκλήρου με κεφαλαία μπορεί να δώσει μικρότερο κωδικό από το ίδιο URL με πεζά.

  • Αριθμητικός: ψηφία 0–9, 10 bit ανά 3 ψηφία
  • Αλφαριθμητικός: 45 χαρακτήρες, 11 bit ανά 2 χαρακτήρες
  • Byte: οποιαδήποτε τιμή 8 bit, 8 bit ανά byte
  • Kanji: χαρακτήρες Shift JIS δύο byte, 13 bit ο καθένας

Δείκτες τρόπου και τμήματα

Κάθε σειρά δεδομένων ξεκινά με δείκτη τρόπου 4 bit και πλήθος χαρακτήρων, με μήκος που εξαρτάται από τον τρόπο και την έκδοση. Ένας κωδικός μπορεί να περιέχει αρκετά τέτοια τμήματα, για παράδειγμα αριθμητικό για μια μακριά σειρά ψηφίων και byte για τα υπόλοιπα, κάτι που μπορεί να μικρύνει το αποτέλεσμα.

Άλλοι δείκτες 4 bit σηματοδοτούν λειτουργίες και όχι σύνολα χαρακτήρων: ECI για δήλωση κωδικοποίησης χαρακτήρων, structured append για διαίρεση των δεδομένων σε πολλούς κωδικούς και FNC1 για GS1 και άλλες βιομηχανικές μορφές δεδομένων. Ένας τερματιστής τεσσάρων μηδενικών bit κλείνει τα δεδομένα.

  • Αριθμητικός 0001, αλφαριθμητικός 0010, byte 0100, kanji 1000
  • ECI 0111, structured append 0011
  • FNC1 πρώτη θέση 0101, δεύτερη θέση 1001
  • Τερματιστής 0000

Τρόπος byte και σύνολα χαρακτήρων

Η προεπιλεγμένη ερμηνεία του τρόπου byte στο πρότυπο είναι ISO-8859-1 (Latin-1), αλλά οι περισσότεροι δημιουργοί σήμερα γράφουν UTF-8 ώστε να επιβιώνουν τα τονισμένα γράμματα, άλλες γραφές και τα emoji. Οι αναγνώστες συνήθως εντοπίζουν το UTF-8 εξετάζοντας τα byte.

Όταν το σύνολο χαρακτήρων πρέπει να είναι σαφές, μια κεφαλίδα ECI μπορεί να το δηλώσει ρητά. Χωρίς αυτήν, ένας αναγνώστης μπορεί περιστασιακά να μαντέψει λάθος και να δείξει παραμορφωμένους χαρακτήρες.

Συχνές ερωτήσεις

Γιατί ο κωδικός QR μου γίνεται μεγαλύτερος με πεζά γράμματα;

Τα πεζά γράμματα δεν ανήκουν στο αλφαριθμητικό σύνολο, οπότε το κείμενο πρέπει να χρησιμοποιήσει τον τρόπο byte με 8 bit ανά χαρακτήρα αντί για 5,5. Τα κεφαλαία γράμματα, τα ψηφία και μερικά σύμβολα πακετάρονται πιο σφιχτά.

Μπορεί ένας κωδικός QR να αποθηκεύσει emoji ή μη λατινικό κείμενο;

Ναι, στον τρόπο byte με UTF-8, που υποστηρίζουν οι περισσότεροι δημιουργοί και αναγνώστες κινητών. Κάθε τέτοιος χαρακτήρας παίρνει πολλά byte, οπότε η χωρητικότητα πέφτει.

Μπορεί ένας κωδικός QR να συνδυάζει αριθμητικά δεδομένα και κείμενο;

Ναι. Τα δεδομένα μπορούν να χωριστούν σε τμήματα, το καθένα με δικό του τρόπο, και οι καλοί κωδικοποιητές επιλέγουν τον διαχωρισμό που δίνει τον μικρότερο κωδικό.

Πηγές και πρότυπα

Όλοι οι όροι