Πώς να το χρησιμοποιήσετε
- Επιλέξτε «Κείμενο → byte» για κωδικοποίηση ή «Byte → κείμενο» για αποκωδικοποίηση.
- Επιλέξτε μια μορφή byte: δυαδική, δεκαεξαδική, δεκαδική ή οκταδική.
- Πληκτρολογήστε ή επικολλήστε την είσοδό σας. Το αποτέλεσμα και ο αριθμός των byte ενημερώνονται καθώς πληκτρολογείτε.
- Αντιγράψτε το αποτέλεσμα ή μετακινήστε το στην είσοδο για να ελέγξετε τη μετατροπή και αντίστροφα.
Πώς λειτουργεί
Οι υπολογιστές αποθηκεύουν το κείμενο ως byte. Αυτό το εργαλείο χρησιμοποιεί UTF-8, την κωδικοποίηση που χρησιμοποιείται σχεδόν από κάθε ιστότοπο και σύγχρονο σύστημα. Στο UTF-8, οι 128 χαρακτήρες ASCII (αγγλικά γράμματα, ψηφία και βασικά σημεία στίξης) καταλαμβάνουν ένα byte ο καθένας, έτσι το H είναι 01001000 σε δυαδικό και 48 σε δεκαεξαδικό. Όλοι οι άλλοι χαρακτήρες καταλαμβάνουν δύο έως τέσσερα byte: το é είναι 2 byte (C3 A9), το € και το ☕ είναι 3 byte και τα περισσότερα emoji είναι 4 byte. Γι’ αυτό το πλήθος των byte μπορεί να είναι μεγαλύτερο από το πλήθος των χαρακτήρων και γιατί ένας χαρακτήρας μπορεί να μετατραπεί σε πολλές ομάδες των 8 bit.
Κάθε byte μπορεί να γραφτεί με τέσσερις συνηθισμένους τρόπους: δυαδικό 8 ψηφίων (00000000–11111111), δεκαεξαδικό 2 ψηφίων (00–FF), δεκαδικό (0–255) ή οκταδικό 3 ψηφίων (000–377). Όταν τα byte γράφονται χωρίς διαχωριστικά, οι δυαδικές, δεκαεξαδικές και οκταδικές τιμές συμπληρώνονται με μηδενικά σε σταθερό πλάτος και οι δεκαδικές τιμές συμπληρώνονται σε 3 ψηφία, ώστε να μπορούν να διαχωριστούν ξανά με σαφήνεια.
Η αποκωδικοποίηση ανέχεται τη μορφοποίηση: κενά, αλλαγές γραμμής, κόμματα και ερωτηματικά μεταξύ byte αγνοούνται, όπως επίσης τα προθέματα 0x και 0b και οι ακολουθίες διαφυγής \x. Κάθε ομάδα ελέγχεται· ένα ψηφίο που δεν επιτρέπεται στην επιλεγμένη μορφή ή μια τιμή πάνω από 255 αναφέρεται με τη θέση του byte. Μετά την αποκωδικοποίηση, τα byte ελέγχονται για έγκυρο UTF-8 και ενημερώνεστε αν δεν είναι κείμενο.
Χαρακτήρες που αποτελούνται από πολλά code points, όπως σημαίες ή emoji με αποχρώσεις δέρματος, μετρούνται εδώ ως πολλαπλοί χαρακτήρες, επειδή κάθε code point κωδικοποιείται ξεχωριστά.
Παραδείγματα
Το κλασικό «Hi» σε δυαδικό
Το H είναι ASCII 72 και το i είναι 105, έτσι το «Hi» γίνεται 01001000 01101001 σε δυαδικό, 48 69 σε δεκαεξαδικό και 72 105 σε δεκαδικό: 2 χαρακτήρες, 2 byte, 16 bit.
Γιατί το «Café» είναι 5 byte
Οι χαρακτήρες C, a και f καταλαμβάνουν από ένα byte ο καθένας, αλλά το é είναι δύο byte στο UTF-8: 11000011 10101001 (C3 A9). Η λέξη έχει 4 χαρακτήρες αλλά καταλαμβάνει 5 byte, κάτι που έχει σημασία για τα όρια στηλών βάσεων δεδομένων και για τα πεδία πρωτοκόλλων που μετρώνται σε byte.
Ανάγνωση ενός hex dump
Ένας debugger εμφανίζει 48 65 6c 6c 6f 2c 20 e4 b8 96 e7 95 8c. Επικολλήστε το με την επιλογή «Bytes → text» και Hexadecimal για να λάβετε «Hello, 世界»· κάθε κινεζικός χαρακτήρας είναι 3 byte.
Συχνές ερωτήσεις
Γιατί ένας χαρακτήρας μετατρέπεται σε 16, 24 ή 32 bit;
Στο UTF-8 μόνο οι χαρακτήρες ASCII χωρούν σε ένα byte (8 bit). Τα τονισμένα γράμματα και τα περισσότερα άλλα αλφάβητα χρησιμοποιούν 2 byte, τα κινεζικά, τα ιαπωνικά, τα κορεατικά και πολλά σύμβολα χρησιμοποιούν 3 byte και τα emoji χρησιμοποιούν 4 byte. Κάθε byte εμφανίζεται ως δική του ομάδα.
Είναι ASCII ή UTF-8;
UTF-8. Για απλό αγγλικό κείμενο το αποτέλεσμα είναι ίδιο με το ASCII, επειδή το UTF-8 σχεδιάστηκε να είναι συμβατό με αυτό. Χαρακτήρες πέρα από το ASCII θα ήταν αδύνατο να αναπαρασταθούν μόνο με ASCII.
Γιατί βλέπω σφάλμα κατά την αποκωδικοποίηση δυαδικών;
Κάθε byte πρέπει να έχει το πολύ 8 δυαδικά ψηφία και να περιέχει μόνο 0 και 1. Χωρίς κενά, ο συνολικός αριθμός ψηφίων πρέπει να είναι πολλαπλάσιο του 8. Το μήνυμα σφάλματος αναφέρει το byte που δεν ήταν δυνατό να διαβαστεί.
Τι σημαίνει «μη έγκυρο UTF-8»;
Τα byte δεν σχηματίζουν έγκυρες ακολουθίες UTF-8, για παράδειγμα ένα μεμονωμένο byte πάνω από 127 ή μια ακολουθία που κόβεται στη μέση. Τα δεδομένα μπορεί να προέρχονται από αρχείο με διαφορετική κωδικοποίηση όπως Windows-1252 ή μπορεί να μην είναι καθόλου κείμενο.
Απόρρητο
Η μετατροπή εκτελείται στο πρόγραμμα περιήγησής σας χρησιμοποιώντας τον ενσωματωμένο κωδικοποιητή και αποκωδικοποιητή UTF-8. Το κείμενό σας δεν αποστέλλεται, δεν αποθηκεύεται και δεν περιλαμβάνεται σε αναλυτικά στοιχεία.