Μετατροπέας Κειμένου σε Δυαδικό
Επιλέξτε μια μετατροπή, πληκτρολογήστε ή επικολλήστε, και το αποτέλεσμα ενημερώνεται ζωντανά. Τίποτα από όσα εισάγετε δεν φεύγει από το πρόγραμμά σας περιήγησης.
Ακριβής μετατροπή σε επίπεδο byte, όχι μόνο ASCII
Οι λειτουργίες Κείμενο → Δυαδικό και Κείμενο → Δεκαεξαδικό
ξεκινούν και οι δύο κωδικοποιώντας το κείμενό σας με TextEncoder, που παράγει τα ακριβή bytes UTF-8 που θα
έστελνε ένα πρόγραμμα περιήγησης ή διακομιστής μέσω δικτύου —
μετά κάθε byte μορφοποιείται ως δυαδικό 8 bit ή δεκαεξαδικό 2
ψηφίων, χωρισμένα με κενό. Οι λειτουργίες Δυαδικό → Κείμενο και
Δεκαεξαδικό → Κείμενο αντιστρέφουν τη διαδικασία: κάθε token
αναλύεται πίσω σε ένα byte, και ο TextDecoder
ανασυνθέτει το αρχικό κείμενο. Ελαττωματικά token (λάθος μήκος,
μη έγκυροι χαρακτήρες) εντοπίζονται και αναφέρονται αντί να
παράγουν αλλοιωμένο αποτέλεσμα.
Παράδειγμα
Η μετατροπή της φράσης Καλή μέρα σε όλους — 15
ελληνικά γράμματα και 3 κενά — παράγει ακριβώς:
Δυαδικό:
11001110 10011010 11001110 10110001 11001110 10111011 11001110 10101110 00100000 11001110 10111100 11001110 10101101 11001111 10000001 11001110 10110001 00100000 11001111 10000011 11001110 10110101 00100000 11001111 10001100 11001110 10111011 11001110 10111111 11001111 10000101 11001111 10000010
Δεκαεξαδικό:
ce 9a ce b1 ce bb ce ae 20 ce bc ce ad cf 81 ce b1 20 cf 83 ce b5 20 cf 8c ce bb ce bf cf 85 cf 82
Αυτό είναι 33 bytes για 18 ορατούς χαρακτήρες: τα 3 κενά είναι 1
byte το καθένα (3 bytes), και τα 15 ελληνικά γράμματα είναι 2
bytes το καθένα (30 bytes) — σε αντίθεση με ένα emoji, που θα
πρόσθετε 4 bytes για έναν και μόνο ορατό χαρακτήρα. Η μετατροπή
οποιουδήποτε από τα δύο αποτελέσματα πίσω μέσω Δυαδικό → Κείμενο ή
Δεκαεξαδικό → Κείμενο επιστρέφει Καλή μέρα σε όλους
ακριβώς, με κάθε τόνο ανέπαφο.
Συχνές ερωτήσεις
Γιατί ένας χαρακτήρας μερικές φορές γίνεται πολλά bytes;
Αυτό το εργαλείο κωδικοποιεί κείμενο ως UTF-8, την κωδικοποίηση bytes στην οποία τρέχει ο σύγχρονος ιστός. Οι απλοί χαρακτήρες ASCII (a–z, 0–9, βασική στίξη) είναι 1 byte ο καθένας, αλλά οι περισσότεροι άλλοι χαρακτήρες Unicode παίρνουν περισσότερα: τα ελληνικά γράμματα — τονισμένα ή μη — παίρνουν 2 bytes το καθένα, τα περισσότερα κινέζικα/ιαπωνικά/κορεατικά ιδεογράμματα είναι 3 bytes, και οι χαρακτήρες εκτός του Βασικού Πολυγλωσσικού Πεδίου — συμπεριλαμβανομένων των περισσότερων emoji — είναι 4 bytes. Η φράση «Καλή μέρα» είναι καλό παράδειγμα: κάθε ελληνικό γράμμα με τόνο ή χωρίς παίρνει 2 bytes, ενώ ένα emoji στο τέλος θα πρόσθετε ακόμη 4 bytes μόνο του.
Είναι το ίδιο με το Base64;
Όχι — διαφορετικός σκοπός και μορφή. Το δυαδικό και το δεκαεξαδικό εδώ σας δείχνουν απευθείας τις ακατέργαστες τιμές των bytes (κάθε byte ως 8 άσσοι-και-μηδενικά, ή ως 2 δεκαεξαδικά ψηφία), κάτι χρήσιμο για να καταλάβετε ακριβώς πώς αποθηκεύεται ή μεταδίδεται το κείμενο σε επίπεδο byte. Το Base64 αντίθετα ξαναπακετάρει αυτά τα ίδια bytes σε ένα συμπαγές, ασφαλές για κείμενο αλφάβητο (γράμματα, ψηφία, +, /) φτιαγμένο για να μεταφέρει δεδομένα μέσα από συστήματα που χειρίζονται μόνο απλό κείμενο, όπως το email ή τα data URI. Αν θέλετε αυτή τη συμπαγή, ασφαλή για κείμενο μορφή αντί για ακατέργαστες τιμές bytes, χρησιμοποιήστε αντ' αυτού το εργαλείο κωδικοποιητή/αποκωδικοποιητή Base64.
Μπορώ να μετατρέψω πολύ μεγάλο κείμενο;
Ναι — δεν υπάρχει τεχνητό όριο μήκους. Το πρακτικό όριο είναι η μνήμη του προγράμματός σας περιήγησης, κάτι που για κείμενο κανονικού μεγέθους (ακόμη και ένα ολόκληρο άρθρο ή ένα μεγάλο απόσπασμα καταγραφής) δεν αποτελεί πρόβλημα.
Τι γίνεται με το απλό κείμενο ASCII — δουλεύει το ίδιο;
Ναι, ακριβώς η ίδια διαδικασία τρέχει και στις δύο περιπτώσεις. Το κείμενο ASCII απλώς τυχαίνει να κωδικοποιείται ως ακριβώς 1 byte ανά χαρακτήρα, οπότε το αποτέλεσμα σε δυαδικό και δεκαεξαδικό βγαίνει πιο απλό — κανένας χαρακτήρας δεν παίρνει περισσότερα από 8 bits ή 2 δεκαεξαδικά ψηφία, αφού κάθε σημείο κώδικα ASCII χωράει άνετα σε ένα μόνο byte UTF-8.