Όλοι οι 128 χαρακτήρες ASCII, συμπεριλαμβανομένων των μη εκτυπώσιμων χαρακτήρων (αναπαρίστανται με την συντομογραφία τους).  

Οι 95 εκτυπώσιμοι χαρακτήρες ASCII είναι αριθμημένοι από το 0x20 έως το 0x7E (32 έως 126 στο δεκαδικό). Ο χαρακτήρας κενού (*space*) αρχικά θεωρούνταν μη εκτυπώσιμος.
Ο κώδικας **ASCII** (προφέρεται: [ˈæski] μεταγραφή: άσκι, ακ: **A**merican **S**tandard **C**ode for **I**nformation **I**nterchange, *Αμερικανικός Πρότυπος Κώδικας για Ανταλλαγή Πληροφοριών*) είναι ένα κωδικοποιημένο σύνολο χαρακτήρων του λατινικού αλφάβητου όπως αυτό χρησιμοποιείται σήμερα στην Αγγλική γλώσσα και σε άλλες δυτικοευρωπαϊκές γλώσσες. Χρησιμοποιείται για αναπαράσταση κειμένου στους υπολογιστές, σε συσκευές τηλεπικοινωνίας, καθώς και σε άλλες συσκευές που δουλεύουν με κείμενο. Οι περισσότερες σύγχρονες κωδικοποιήσεις χαρακτήρων βασίζονται στον ASCII, αν και υποστηρίζουν πολύ περισσότερους χαρακτήρες.

Ιστορικά, ο ASCII αναπτύχθηκε από τηλεγραφικούς κώδικες. Η πρώτη εμπορική χρήση του ήταν ως κώδικας ενός τηλέτυπου επτά bit της Bell. Η δουλειά για τον ASCII ξεκίνησε επίσημα στις 6 Οκτωβρίου 1940, με την πρώτη συνάντηση της υποεπιτροπής X3.2 του Αμερικανικού Οργανισμού Τυποποίησης (*American Standards Association*, ASA). Η πρώτη έκδοση δημοσιεύτηκε το 1963, μία μείζων αναθεώρηση το 1967, και η πλέον πρόσφατη ενημέρωση το 1986. Σε σύγκριση με τους παλαιότερους τηλεγραφικούς κώδικες, ο προτεινόμενος κώδικας της Bell και ο ASCII ήταν διατεταγμένοι για πιο άνετη ταξινόμηση (π.χ. αλφαβητική σειρά) καταλόγων ενώ είχαν χαρακτηριστικά και για άλλες συσκευές εκτός από τηλέτυπα.

Ο ASCII περιλαμβάνει ορισμούς για 128 χαρακτήρες: 33 είναι μη εκτυπώσιμοι χαρακτήρες ελέγχου (πλέον κατά κύριο λόγο παρωχημένοι) που επηρεάζουν το πως γίνεται οι επεξεργασία του κειμένου και των κενών, 94 είναι εκτυπώσιμοι χαρακτήρες, και το κενό που θεωρείται αόρατο γραφικό. Η πλέον κοινώς χρησιμοποιούμενη κωδικοποίηση χαρακτήρων στο διαδίκτυο ήταν η US-ASCII μέχρι τον Δεκέμβριο του 2007, οπότε ξεπεράστηκε από την κωδικοποίηση UTF-8.

Ιστορία
-------

Η κωδικοποίηση US ASCII 1968 αποτελούνταν από δύο στήλες χαρακτήρων ελέγχου, μία στήλη ειδικών χαρακτήρων, μία στήλη αριθμών και τέσσερις στήλες γραμμάτων.
Ο ASCII αναπτύχθηκε υπό την αιγίδα μίας επιτροπής του Αμερικανικού Οργανισμού Τυποποίησης, ονόματι επιτροπή X3, από την υποεπιτροπή της, X3.2 (αργότερα X3L2), και αργότερα από την ομάδα εργασίας X3.2.4 αυτής της υποεπιτροπής. Ο Αμερικανικός Οργανισμός Τυποποίησης εξελίχθηκε σε Ινστιτούτο Τυποποίησης των Ηνωμένων Πολιτειών της Αμερικής (*United States of America Standards Institute*, USASI). Όπως και άλλες κωδικοποιήσεις χαρακτήρων, ο ASCII καθορίζει μία αντιστοιχία μεταξύ ψηφιακών μοτίβων και σύμβολα χαρακτήρων (γραφήματα και χαρακτήρες ελέγχου). Αυτό επιτρέπει σε ψηφιακές συσκευές να επικοινωνούν μεταξύ τους και να επεξεργάζονται, να αποθηκεύουν και να μεταδίδουν πληροφορίες σχετικές με χαρακτήρες, όπως η γραπτή γλώσσα. Πριν την ανάπτυξη του ASCII, οι κωδικοποιήσεις που ήταν σε χρήση περιλάμβαναν 26 αλφαβητικούς χαρακτήρες, 10 αριθμητικά ψηφία, και από 11 έως 25 ειδικά γραφικά σύμβολα. Για να συμπεριληφθούν όλα αυτά, καθώς και χαρακτήρες ελέγχου συμβατοί με το πρότυπο της *Comité Consultatif International Téléphonique et Télégraphique*, το Fieldata και το πρώιμο EBCDIC, απαιτούνταν πάνω από 64 κωδικοί για τον ASCII.

Η επιτροπή συζήτησε την πιθανότητα λειτουργίας πλήκτρου αλλαγής (swift, όπως στην κωδικοποίηση Baudot), η οποία θα επέτρεπε παραπάνω από 64 κωδικούς να αναπαρασταθούν με έξι bit. Σε ένα κωδικό με shift κάποιοι κάποιοι κωδικοί χαρακτήρων καθορίζουν επιλογή ανάμεσα σε κάποιες επιλογές για τους επόμενους κωδικούς χαρακτήρων. Αυτό επιτρέπει συμπαγή κωδικοποίηση, αλλά είναι λιγότερο αξιόπιστο για μετάδοση δεδομένων. Ένα σφάλμα στην μετάδοση του κωδικού swift εν γένει κάνει ένα μεγάλο τμήμα της μετάδοσης ακατάληπτο. Η επιτροπή τυποποίησης αποφάσισε κατά του shit και έτσι για τον ASCII απαιτούνταν κωδικοποίηση τουλάχιστον επτά bit.

Η επιτροπή εξέτασε την πιθανότητα κωδικοποίησης 8-bit, καθώς οκτώ bit θα επέτρεπαν αποδοτική κωδικοποίηση με μοτίβα τεσσάρων bit ψηφίων με δυαδικά κωδικοποιημένους δεκαδικούς (*binary coded decimal*). Αυτό ωστόσο θα απαιτούσε όλες οι μεταδόσεις δεδομένων να γίνονται με οκτώ bit, όταν επτά θα ήταν αρκετά. Η επιτροπή ψήφισε να χρησιμοποιηθεί κωδικοποίηση επτά bit ώστε να ελαχιστοποιηθεί το κόστος της μετάδοσης δεδομένων. Καθώς η διάτρητη ταινία εκείνη την εποχή μπορούσε να καταγράψει οκτώ bit σε μία θέση, επέτρεπε την χρήση bit ισοτιμίας για έλεγχο σφαλμάτων αν αυτό ήταν επιθυμητό. Συσκευές με δυφιοοκτάδες (*octet*, ομαδοποίηση 8 bit) ως μητρικό τύπο δεδομένων που δεν χρησιμοποιούσαν έλεγχο ισοτιμίας συνήθως έθεταν το όγδοο bit στο *0*.

Η κωδικοποίηση διατάχθηκε έτσι ώστε οι περισσότεροι κωδικοί ελέγχου να είναι μαζί, και όλοι οι γραφικοί κωδικοί μαζί. Οι πρώτες δύο στήλες (32 θέσεις) δεσμεύθηκαν για χαρακτήρες ελέγχου. Ο χαρακτήρας κενού (*space*) τοποθετήθηκε πριν από τους γραφικούς χαρακτήρες έτσι ώστε να γίνουν ευκολότεροι οι αλγόριθμοι ταξινόμησης, έτσι κατέλαβε την θέση 0x20. Η επιτροπή αποφάσισε ότι ήταν σημαντικό να υποστηρίζονται κεφαλαιογράμματα αλφάβητα 64 χαρακτήρων, και έτσι επέλεξε να δομήσει έτσι τον ASCII ώστε να μπορεί εύκολα να μετατραπεί σε σύνολο 64 γραφικών χαρακτήρων. Τα μικρά γράμματα έτσι δεν ανακατεύτηκαν με τα κεφαλαία. Οι ειδικοί και αριθμητικοί κωδικοί τοποθετήθηκαν πριν από τα γράμματα ώστε να υπάρχει ευελιξία, ενώ το γράμμα 'A' τοποθετήθηκε στη θέση 0x41 ώστε να ταιριάζει με το προσχέδιο του αντίστοιχου Βρετανικού προτύπου. Τα ψηφία 0-9 διατάχθηκαν έτσι ώστε να αντιστοιχούν σε τιμές με ψηφιακό πρόθεμα 011, κάνοντας έτσι εύκολη την αποκωδικοποίηση στο δεκαδικό.

Πολλοί από τους μη αλφαριθμητικούς χαρακτήρες τοποθετήθηκαν έτσι ώστε να αντιστοιχούν με την αλλαγμένη (*shifted*) θέση της γραφομηχανής. Έτσι τα #, $ και % τοποθετήθηκαν ώστε να αντιστοιχούν στα 3, 4, και 5 στη διπλανή στήλη. Οι παρενθέσεις ωστόσο, δεν ήταν δυνατόν να αντιστοιχούν στο 9 και 0, καθώς η αντίστοιχη θέση του είχε καταληφθεί από τον χαρακτήρα κενού. Τελικώς επιλέχθηκαν οι θέσεις 8 και 9, καθώς πολλές ευρωπαϊκές γραφομηχανές είχαν εκεί τις παρενθέσεις. Το σύμβολο @ δεν χρησιμοποιούνταν στην ηπειρωτική Ευρώπη και έτσι η επιτροπή περίμενε ότι στη γαλλική εκδοχή θα αντικαθιστούνταν με το À, έτσι το @ τοποθετήθηκε στη θέση 0x40 δίπλα στο γράμμα A.

Οι χαρακτήρες ελέγχου που θεωρήθηκε ότι ήταν θεμελιώδεις για την μετάδοση δεδομένων ήταν οι: αρχή μηνύματος (*start of message*, SOM), τέλος διεύθυνσης (*end of address*, EOA), τέλος μηνύματος (*end of message*, EOM), τέλος μετάδοσης (*end of transmission*, EOT), ποιος είσαι; (*who are you?*, WRU), είσαι; (*are you?*, RU), έλεγχος συσκευής (*device control*, DCO), σύγχρονα ανενεργό (*synchronous idle*, SYNC), αναγνώριση (*acknowledge* , ACK). Αυτοί τοποθετήθηκαν έτσι ώστε να μεγιστοποιηθεί η απόσταση Hamming μεταξύ των δυαδικών τους μοτίβων.

Όταν συμπληρώθηκαν και οι άλλοι χαρακτήρες ελέγχου, ο ASCII δημοσιεύτηκε ως ASA X3.4-1963, έχοντας 28 θέσεις κωδικών κενές για μελλοντική τυποποίηση, και ένα κενό κωδικό χαρακτήρα ελέγχου. Υπήρχαν κάποιες διαφωνίες τότε για το αν θα πρέπει να υπάρχουν περισσότεροι χαρακτήρες ελέγχου αντί για το μικρογράμματο αλφάβητο. Η αναποφασιστικότητα δεν κράτησε πολύ: τον Μάιο του 1963 η Ομάδα Εργασίας CCITT στο Νέο Τηλεγραφικό Αλφάβητο (*New Telegraph Alphabet*) πρότεινε την τοποθέτηση των μικρογράμματων χαρακτήρων στις στήλες 6 και 7, και ο Διεθνής Οργανισμός Τυποποίησης TC 97 SC 2 ψήφισε υπέρ της ενσωμάτωσης της αλλαγής στο προσχέδιο του προτύπου του. Η ομάδα εργασίας X3.2.4 ψήφισε την αποδοχή της αλλαγής στον ASCII στη συνεδρίασή του Μαΐου 1963. Με την τοποθέτηση των μικρογράμματων χαρακτήρων στις στήλες 6 και 7, οι χαρακτήρες διέφεραν στο μοτίβο bit τους από τους κεφαλαιογράμματους μόνο κατά ένα bit, γεγονός που απλοποιούσε την ταύτιση χαρακτήρων χωρίς διάκριση κεφαλαίων-μικρών καθώς και την κατασκευή πληκτρολογίων και εκτυπωτών.

Η επιτροπή X3 έκανε άλλες αλλαγές, συμπεριλαμβάνοντας νέους χαρακτήρες (τους χαρακτήρες αγκύλης και κατακόρυφης γραμμής), μετονομάζοντας κάποιους χαρακτήρες (ο SOM έγινε αρχή κεφαλίδας (SOH)) μεκακινώντας ή αφαιρώντας άλλους (ο RU αφαιρέθηκε). Ο ASCII εν συνεχεία ενημερώθηκε ως USASI X3.4-1967, μετά USASI X3.4-1968, ANSI X3.4-1977, και τέλος, ANSI X3.4-1986 (οι πρώτοι δύο σποραδικά ονομάζονταν εκ των υστέρων ANSI X3.4-1967, και ANSI X3.4-1968).

Η επιτροπή X3 όρισε επίσης πως θα έπρεπε να μεταδίδεται ο ASCII (το λιγότερο σημαντικό bit (LSB) πρώτα), και πως θα έπρεπε να καταγράφεται σε διάτρητη ταινία. Πρότειναν ένα πρότυπο 9 τροχιών για μαγνητική ταινία και αποπειράθηκαν να λύσουν προβλήματα με κάποιους τύπους διάτρητων δελτίων.

Ο ASCII χρησιμοποιήθηκε πρώτη φορά εμπορικά το 1963 ως κωδικοποίηση 7 bit για το δίκτυο TWX (*Teletype Wide-area eXchange*) της *American Telephone & Telegraph*. Το TWX αρχικά χρησιμοποιούσε την παλαιότερη κωδικοποίηση Baudot 5-bit, η οποία χρησιμοποιούνταν και από το ανταγωνιστικό σύστημα τηλέτυπων Telex. Ο Μπομπ Μπέμερ εισήγαγε χαρακτηριστικά όπως η ακολουθία διαφυγής (*escape sequence*). Ο βρετανός συνάδελφός του Χιου Μακγκρέγκορ Ρος βοήθησε στην διάδοση αυτού του έργου, σύμφωνα με τον Μπέμερ «τόσο, ώστε αυτό που επρόκειτο να γίνει ο ASCII, αρχικά αποκαλούνταν στην Ευρώπη: Κώδικας Μπέμερ-Ρος». Εξαιτίας του εκτεταμένου έργου του στον ASCII, ο Μπέμερ αποκαλέστηκε ο «πατέρας του ASCII».

Στις 11 Μαρτίου 1968, ο πρόεδρος των ΗΠΑ Λίντον Τζόνσον έδωσε εντολή όλοι οι υπολογιστές που αγοράζονταν από την ομοσπονδιακή κυβέρνηση των ΗΠΑ να υποστηρίζουν τον ASCII.

Άλλα διεθνή σώματα τυποποίησης επικύρωσαν κωδικοποιήσεις χαρακτήρων όπως ο ISO/IEC 646 που είναι ταυτόσημοι ή σχεδόν ταυτόσημοι με τον ASCII, με επεκτάσεις για χαρακτήρες που δεν υπάρχουν στο αγγλικό αλφάβητο και σύμβολα που δεν χρησιμοποιούνται στις Ηνωμένες Πολιτείες, όπως το σύμβολο για την στερλίνα του Ηνωμένου Βασιλείου (£). Σχεδόν κάθε χώρα χρειάζονταν μία προσαρμοσμένη εκδοχή του ASCII καθώς ο ASCII ήταν κατάλληλος μόνο για τις ανάγκες των ΗΠΑ και ελάχιστων άλλων χωρών. Για παράδειγμα ο Καναδάς είχε δική του εκδοχή που υποστήριζε γαλλικούς χαρακτήρες. Άλλες προσαρμοσμένες εκδοχές περιλαμβάνουν τους ISCII (Ινδία), VISCII (Βιετνάμ), και YUSCII (Γιουγκοσλαβία). Παρότι και αυτές οι κωδικοποιήσεις αναφέρονται κάποιες φορές ως ASCII, ο πραγματικός ASCII καθορίζεται αυστηρά μόνο από το πρότυπο της ANSI.

Ο ASCII ενσωματώθηκε στο σύνολο χαρακτήρων της Unicode ως τα πρώτα 128 σύμβολα, έτσι οι χαρακτήρες του ASCII έχουν τις ίδιες αριθμητικές τιμές και στα δύο σύνολα. Αυτό επιτρέπει στην UTF-8 να είναι προς τα πίσω συμβατή με τον ASCII.

Χαρακτήρες ελέγχου
------------------

Οι πρώτοι 32 κωδικοί (0-31 στο δεκαδικό) στον ASCII είναι δεσμευμένοι για χαρακτήρες ελέγχου, κωδικοί που αρχικά δεν προορίζονταν για την αναπαράσταση εκτυπώσιμων πληροφοριών αλλά για τον έλεγχο συσκευών (όπως οι εκτυπωτές) που χρησιμοποιούν ASCII, ή για να παρέχουν μετα-πληροφορίες για την ροή δεδομένων όπως αυτά που αποθηκεύονται σε μαγνητική ταινία. Για παράδειγμα ο χαρακτήρας 10 αναπαριστά την λειτουργία «τροφοδοσίας γραμμής» (η οποία δίνει εντολή στον εκτυπωτή να προχωρήσει το χαρτί), και ο χαρακτήρας 8 αναπαριστά το *backspace*.

Το αρχικό πρότυπο ASCII χρησιμοποιούσε μόνο σύντομες περιγραφικές φράσεις για κάθε χαρακτήρα ελέγχου. Η αμφισημία που προέκυπτε ήταν κάποιες φορές εσκεμμένη (όπου ένας χαρακτήρας επρόκειτο να χρησιμοποιηθεί ελαφρώς διαφορετικά σε ένα τερματικό σύνδεσμο από ότι σε μία ροή δεδομένων) και κάποιες φορές τυχαία (όπως για παράδειγμα η σημασία του «delete»).

Η συσκευή που πιθανώς επηρέασε την ερμηνεία αυτών των χαρακτήρων περισσότερο ήταν η σειρά τηλέτυπων ASR-33, το οποίο ήταν τερματικό εκτύπωσης με δυνατότητα ανάγνωσης και διάτρησης χαρτοταινίας. Η χαρτοταινία ήταν πολύ δημοφιλές μέσο για μακροπρόθεσμη αποθήκευση προγραμμάτων την δεκαετία του 1980, καθώς ήταν φτηνότερη και λιγότερο ευάλωτη από την μαγνητοταινία. Πιο συγκεκριμένα, οι ρυθμίσεις της συσκευής Teletype 33 για τους κωδικούς 17 (Control-Q, DC1, γνωστό και ως XON), 19 (Control-S, DC3, γνωστό και ως XOFF), και 127 (Delete) έγιναν ντε φάκτο πρότυπο. 

Ο κωδικός 127 ονομάζεται επίσημα «*delete*» (διαγραφή) αλλά στην Teletype ονομάζονταν «*rubout*» (σβήσε). Καθώς το πρωτότυπο πρότυπο δεν έδινε λεπτομερή ερμηνεία για τους περισσότερους κωδικούς ελέγχου, οι ερμηνείες αυτού του κωδικού ποίκιλαν. Η αρχική σημασία στην Teletype αλλά και η πρόθεση του προτύπου ήταν να είναι χαρακτήρας αγνόησης, όπως και ο χαρακτήρας NUL (όλα μηδενικά). Αυτό ήταν ιδιαίτερα χρήσιμο για χαρτοταινίες, επειδή η διάτρηση του μοτίβου με όλα τα bit μονάδες πάνω από ένα υπάρχον σημάδι το εξαφάνιζε. Οι ταινίες που επρόκειτο να επεξεργαστούν με το χέρι παράγονταν και με έξτρα χαρακτήρες NUL έτσι ώστε ένας χαρακτήρας να μπορεί να σβηστεί και να μπει η αντικατάστασή του στον κενό χώρο.

Καθώς οι οθόνες άρχισαν να αντικαθιστούν τα τερματικά εκτύπωσης η αξία του χαρακτήρα «rubout» χάθηκε. Τα συστήματα DEC, για παράδειγμα, ερμήνευσαν το «Delete» ώστε να σημαίνει «αφαίρεσε τον χαρακτήρα πριν από τον δρομέα» και αυτή η ερμηνεία έγινε κοινή στα συστήματα Unix. Τα περισσότερα άλλα συστήματα χρησιμοποιούσαν το «Backspace» για αυτή την δουλειά και χρησιμοποιούσαν το «delete» με την έννοια «αφαίρεσε τον χαρακτήρα που βρίσκεται στον δρομέα». Η τελευταία ερμηνεία είναι η πλέον κοινή τώρα.

Πολλοί περισσότεροι από τους κωδικούς ελέγχου πήρες σημασία αρκετά διαφορετική από την αρχική που προβλέπονταν. Ο χαρακτήρας διαφυγής (escape, κωδικός 27), για παράδειγμα, είχε σκοπό αρχικά να επιτρέπει την μετάδοση των χαρακτήρων ελέγχου με το κυριολεκτικό τους νόημα αντί να κληθεί η λειτουργία τους. Αυτή είναι η ίδια σημασία με την διαφυγή στις κωδικοποιήσεις URL, στις συμβολοσειρές της γλώσσας προγραμματισμού C, και σε άλλα συστήματα όπου κάποιοι χαρακτήρες έχουν δεσμευμένη σημασία. Σταδιακά δόθηκε νέα σημασία η οποία τελικά επικράτησε. Πλέον η αποστολή ενός ESC συνήθως υποδηλώνει την αρχή μιας αλληλουχίας εντολών, συνήθως με την μορφή του αποκαλούμενου «κωδικού διαφυγής ANSI» (ANSI escape code, ή πιο σωστά «Εισαγωγέας Αλληλουχίας Ελέγχου», Control Sequence Introducer) που ξεκινά με το ESC ακολουθούμενο από ένα χαρακτήρα αριστερής αγκύλης «[». Ένα ESC που στέλνεται από το τερματικό πιο συχνά χρησιμοποιείται ως χαρακτήρας εκτός ζώνης (out of band) που χρησιμοποιείται για τον τερματισμό μιας λειτουργίας, όπως στους επεξεργαστές κειμένου TECO και vi. Σε γραφικό περιβάλλον χρήστη(GUI) ή συστήματα παραθύρων, το ESC συνήθως προκαλεί τον τερματισμό της τρέχουσας λειτουργίας της εφαρμογής ή και τον τερματισμό της ίδιας της εφαρμογής.

Η εγγενής αμφισημία πολλών χαρακτήρων ελέγχου, σε συνδυασμό με την ιστορική τους χρήση, δημιούργησαν προβλήματα όταν μεταφέρονταν απλό κείμενο μεταξύ διαφορετικών συστημάτων. Το καλύτερο παράδειγμα για αυτό είναι το πρόβλημα με την νέα γραμμή (newline) σε διάφορα λειτουργικά συστήματα. Τα τηλέτυπα απαιτούσαν να δηλώνεται το τέλος της γραμμή και με «επιστροφή φορέα» και με «τροφοδοσία γραμμής». Το πρώτο επιστρέφει τον φορέα εκτύπωσης στην αρχή της γραμμής και το δεύτερο προωθεί την δεύτερη γραμμή χωρίς να επηρεάζει τον φορέα. Ωστόσο, η ανάγκη να σημειώνεται το τέλος γραμμής με δύο χαρακτήρες εισήγαγε μη αναγκαία πολυπλοκότητα και ερωτήματα ως προς το πως να ερμηνεύεται κάθε χαρακτήρας όταν εμφανιζόταν μόνος του. Για να απλοποιηθεί το ζήτημα, αρχεία απλού κειμένου στα συστήματα Unix και Amiga χρησιμοποιούσαν μόνο τροφοδοσία γραμμής για την αλλαγή γραμμής. Παρομοίως παλιότερα συστήματα Macintosh μεταξύ άλλων, χρησιμοποιούσαν μόνο επιστροφή φορέα. Διάφορα λειτουργικά συστήματα της IBM χρησιμοποιούσαν και τους δύο χαρακτήρες για το τέλος της γραμμής, πιθανώς για συμβατότητα με τα τηλέτυπα. Αυτό το ντε φάκτο πρότυπο αντιγράφηκε και στο CP/M και μετά στο MS-DOS και τελικώς στα Microsoft Windows. Η μετάδοση κειμένου στο Διαδίκτυο, για πρωτόκολλα (UHU) όπως το E-mail και το World Wide Web, χρησιμοποιεί και τους δύο χαρακτήρες.

Κάποια λειτουργικά συστήματα όπως τα προ-VMS λειτουργικά συστήματα DEC μαζί με το CP/M, κατέγραφαν το μήκος αρχείων μόνο σε μονάδες μπλοκ δίσκου και χρησιμοποιούσαν το Control-Z (SUB) για να σημειώσουν το πραγματικό τέλος του κειμένου σε ένα αρχείο. Για αυτό τον λόγο χρησιμοποιούνταν ως ακρωνύμιο το EOF (end of file, τέλος αρχείου) για το Control-Z αντί για SUB. Για διάφορους λόγους το τέλος κειμένου (EXT, end of text) ή Control-C ενώ η χρήση του Z ώς κωδικού ελέγχου καθώς είναι και το τελευταίο γράμμα του αλφαβήτου ήταν πολύ βολικό. Συμβολοσειρές κειμένου που τελειώνουν με τον μηδενικό χαρακτήρα (null character) είναι γνωστοί ως ASCIZ, ASCIIZ ή C strings

| Δυαδ. | Οκτ. | Δεκ. | Δεκαεξ. | Συντ. |  |  |  | Περιγραφή | Ελληνικά |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 000 0000 | 000 | 0 | 00 | NUL | ␀ | ^@ | \0 | Null character | Μηδενικός χαρακτήρας |
| 000 0001 | 001 | 1 | 01 | SOH | ␁ | ^A |  | Start of Header | Αρχή Επικεφαλίδας |
| 000 0010 | 002 | 2 | 02 | STX | ␂ | ^B |  | Start of Text | Αρχή Κειμένου |
| 000 0011 | 003 | 3 | 03 | ETX | ␃ | ^C |  | End of Text | Τέλος Κειμένου |
| 000 0100 | 004 | 4 | 04 | EOT | ␄ | ^D |  | End of Transmission | Τέλος Μετάδοσης |
| 000 0101 | 005 | 5 | 05 | ENQ | ␅ | ^E |  | Enquiry | Ερώτημα |
| 000 0110 | 006 | 6 | 06 | ACK | ␆ | ^F |  | Acknowledgment | Αναγνώριση |
| 000 0111 | 007 | 7 | 07 | BEL | ␇ | ^G | \a | Bell | Κουδούνι |
| 000 1000 | 010 | 8 | 08 | BS | ␈ | ^Η | \b | Backspace | Πίσω διάστημα |
| 000 1001 | 011 | 9 | 09 | HT | ␉ | ^I | \t | Horizontal Tab | Στηλοθέτης |
| 000 1010 | 012 | 10 | 0A | LF | ␊ | ^J | \n | Line feed | Τροφοδοσία γραμμής |
| 000 1011 | 013 | 11 | 0B | VT | ␋ | ^K | \v | Vertical Tab | Κάθετος στηλοθέτης |
| 000 1100 | 014 | 12 | 0C | FF | ␌ | ^L | \f | Form feed | Τροφοδοσία φόρμας |
| 000 1101 | 015 | 13 | 0D | CR | ␍ | ^M | \r | Carriage return | Επιστροφή φορέα |
| 000 1110 | 016 | 14 | 0E | SO | ␎ | ^N |  | Shift Out | Μετατόπιση Έξω |
| 000 1111 | 017 | 15 | 0F | SI | ␏ | ^Ο |  | Shift In | Μετατόπιση Μέσα |
| 001 0000 | 020 | 16 | 10 | DLE | ␐ | ^P |  | Data Link Escape | Διαφυγή Ζεύξης Δεδομένων |
| 001 0001 | 021 | 17 | 11 | DC1 | ␑ | ^Q |  | Device Control 1 (συχνά XON) | Έλεγχος Συσκευής 1 |
| 001 0010 | 022 | 18 | 12 | DC2 | ␒ | ^R |  | Device Control 2 | Έλεγχος Συσκευής 2 |
| 001 0011 | 023 | 19 | 13 | DC3 | ␓ | ^S |  | Device Control 3 (συχνά XOFF) | Έλεγχος Συσκευής 3 |
| 001 0100 | 024 | 20 | 14 | DC4 | ␔ | ^T |  | Device Control 4 | Έλεγχος Συσκευής 4 |
| 001 0101 | 025 | 21 | 15 | NAK | ␕ | ^U |  | Negative Acknowledgement | Αρνητική Αναγνώριση |
| 001 0110 | 026 | 22 | 16 | SYN | ␖ | ^V |  | Synchronous idle | Συγχρονισμός σε ηρεμία |
| 001 0111 | 027 | 23 | 17 | ETB | ␗ | ^W |  | End of Transmission Block | Τέλος Μπλοκ Μετάδοσης |
| 001 1000 | 030 | 24 | 18 | CAN | ␘ | ^X |  | Cancel | Άκυρο |
| 001 1001 | 031 | 25 | 19 | EM | ␙ | ^Y |  | End of Medium | Τέλος Μέσου |
| 001 1010 | 032 | 26 | 1A | SUB | ␚ | ^Z |  | Substitute | Υποκατάσταση |
| 001 1011 | 033 | 27 | 1B | ESC | ␛ | ^[ | \e | Escape | Διαφυγή |
| 001 1100 | 034 | 28 | 1C | FS | ␜ | ^\ |  | File separator | Διαχωριστικό αρχείων |
| 001 1101 | 035 | 29 | 1D | GS | ␝ | ^] |  | Group Separator | Διαχωριστικό ομάδων |
| 001 1110 | 036 | 30 | 1E | RS | ␞ | ^^ |  | Record separator | Διαχωριστικό εγγραφών |
| 001 1111 | 037 | 31 | 1F | US | ␟ | ^\_ |  | Unit separator | Διαχωριστικό μονάδων |
|  |
| 111 1111 | 177 | 127 | 7F | DEL | ␡ | ^? |  | Delete | Διαγραφή |

1. ↑  Οι Unicode χαρακτήρες της περιοχής U+2400 έως U+2421 είναι δεσμευμένοι για να αναπαριστούν χαρακτήρες ελέγχου όταν είναι αναγκαίο να εκτυπωθούν ή να εμφανιστούν στην οθόνη αντί να εκτελέσουν την προβλεπόμενη λειτουργία τους. Κάποιοι φυλλομετρητές ενδέχεται να μην τους εμφανίζουν κανονικά.
2. ↑   Το σύμβολο παράλειψης (^) συχνά χρησιμοποιείται για να αναπαραστήσει χαρακτήρες ελέγχου. Αυτό υποδεικνύει επίσης την ακολουθία πλήκτρων ώστε να εισαχθεί ο χαρακτήρας παραδοσιακά στα περισσότερα τερματικά κειμένου: Η παράλειψη (^) στην αρχή της ακολουθίας αναπαριστά το πλήκτρο «Ctrl» που πρέπει να είναι πατημένο ενώ εισάγεται ο δεύτερος χαρακτήρας.
3. ↑   Κωδικοί διαφυγής στην γλώσσα προγραμματισμού C και πολλές άλλες γλώσσες που επηρεάστηκαν από αυτή, όπως η Java και η Perl (αν και δεν υποστηρίζουν κατ' ανάγκη όλες οι εφαρμογές όλους τους κωδικούς διαφυγής).
4. ↑  Ο χαρακτήρας Backspace μπορεί να εισαχθεί πατώντας το πλήκτρο "Backspace", "Bksp", ή ← σε κάποια συστήματα.
5. 1 2  Η αμφισημία του Backspace οφείλεται στα πρώτα τερματικά που σχεδιάστηκαν με δεδομένο ότι η κύρια χρήση του πληκτρολογίου θα ήταν η χειροκίνητη διάτρηση της χαρτοταινίας χωρίς να υπάρχει σύνδεση με υπολογιστή. Για να σβηστεί ο προηγούμενος χαρακτήρας θα έπρεπε να πάει πίσω ο διατρητήρας, το οποίο γινόταν με πλήκτρο που για μηχανικούς λόγους αλλά και για απλότητα βρίσκονταν στον διατρητήρα και όχι στο πληκτρολόγιο, και μετά να σβηστεί ο χαρακτήρας. Έτσι τοποθετήθηκε πλήκτρο που παρήγαγε διαγραφή στη θέση που βρίσκονταν το backspace στις γραφομηχανές. Όταν συστήματα χρησιμοποιούσαν αυτά τα τερματικά και παρείχαν επεξεργασία μέσω γραμμής εντολών, έπρεπε να χρησιμοποιήσουν τον κωδικό «rubout» για να εκτελέσουν λειτουργία backspace, και συχνά δεν ανέθεταν κάποια λειτουργία στον χαρακτήρα backspace.
6. ↑  Ο χαρακτήρας Tab μπορεί να εισαχθεί πατώντας το πλήκτρο "Tab" στα περισσότερα συστήματα.
7. ↑  Ο χαρακτήρας Carriage Return (επιστροφή φορέα) μπορεί να εισαγθεί πατώντας το πλήκτρο "Return", "Ret", "Enter", ή ↵ στα περισσότερα συστήματα.
8. ↑  Η ακολουθία διαφυγής '\e' δεν είναι μέρος της ISO C. Ωστόσο γίνεται κατανοητή από πολλούς μεταγλωτιστές.
9. ↑  Ο χαρακτήρας Escape μπορεί να εισαχθεί πατώντας το πλήκτρο "Escape" ή "Esc" σε κάποια συστήματα.
10. ↑  Το ^^ σημαίνει Control ^, όχι Control-Control.
11. ↑  Ο χαρακτήρας Delete μπορεί να εισαγθεί πατώντας το πλήκτρο "Backspace", "Bksp", η ← σε κάποια συστήματα.

Εκτυπώσιμοι χαρακτήρες
----------------------

Οι κωδικοί 0x21 έως 0x7E, γνωστοί ως εκτυπώσιμοι χαρακτήρες, αναπαριστούν γράμματα, αριθμούς, σημεία στίξης και μερικά άλλα σύμβολα.

Ο κωδικός 0x20, ο χαρακτήρας κενού, αναπαριστά το κενό μεταξύ λέξεων, όπως παράγεται από το πάτημα του πλήκτρου space-bar ενός τυπικού πληκτρολογίου. Καθώς ο χαρακτήρας κενού θεωρείται αόρατο γραφικό παρά χαρακτήρας ελέγχου και έτσι εν γένει δεν είναι ορατός, αναπαρίσταται από τον Unicode χαρακτήρα U+2420 «␠». Χρησιμοποιούνται επίσης και οι Unicode χαρακτήρες U+2422 "␢" ή U+2423 "␣" όταν είναι αναγκαία η οπτική αναπαράσταση του κενού.

Ο κωδικός 0x7F αντιστοιχεί στον μη εκτυπώσιμο χαρακτήρα «Delete» (DEL) και έτσι παραλείπεται από το διάγραμμα καθώς καλύπτεται στο προηγούμενο διάγραμμα.

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

| Δυαδ. | Οκτ. | Δεκ. | Δεκαεξ. | Γραφ. |
| --- | --- | --- | --- | --- |
| 010 0000 | 040 | 32 | 20 | ␠ |
| 010 0001 | 041 | 33 | 21 | ! |
| 010 0010 | 042 | 34 | 22 | "|
| 010 0011 | 043 | 35 | 23 | # |
| 010 0100 | 044 | 36 | 24 | $ |
| 010 0101 | 045 | 37 | 25 | % |
| 010 0110 | 046 | 38 | 26 | & |
| 010 0111 | 047 | 39 | 27 | ' |
| 010 1000 | 050 | 40 | 28 | ( |
| 010 1001 | 051 | 41 | 29 | ) |
| 010 1010 | 052 | 42 | 2A | \* |
| 010 1011 | 053 | 43 | 2B | + |
| 010 1100 | 054 | 44 | 2C | , |
| 010 1101 | 055 | 45 | 2D | - |
| 010 1110 | 056 | 46 | 2E |. |
| 010 1111 | 057 | 47 | 2F | / |
| 011 0000 | 060 | 48 | 30 | 0 |
| 011 0001 | 061 | 49 | 31 | 1 |
| 011 0010 | 062 | 50 | 32 | 2 |
| 011 0011 | 063 | 51 | 33 | 3 |
| 011 0100 | 064 | 52 | 34 | 4 |
| 011 0101 | 065 | 53 | 35 | 5 |
| 011 0110 | 066 | 54 | 36 | 6 |
| 011 0111 | 067 | 55 | 37 | 7 |
| 011 1000 | 070 | 56 | 38 | 8 |
| 011 1001 | 071 | 57 | 39 | 9 |
| 011 1010 | 072 | 58 | 3A | : |
| 011 1011 | 073 | 59 | 3B | ; |
| 011 1100 | 074 | 60 | 3C | < |
| 011 1101 | 075 | 61 | 3D | = |
| 011 1110 | 076 | 62 | 3E | > |
| 011 1111 | 077 | 63 | 3F | ? |

 | 

| Δυαδ. | Οκτ. | Δεκ. | Δεκαεξ. | Γραφ. |
| --- | --- | --- | --- | --- |
| 100 0000 | 100 | 64 | 40 | @ |
| 100 0001 | 101 | 65 | 41 | A |
| 100 0010 | 102 | 66 | 42 | B |
| 100 0011 | 103 | 67 | 43 | C |
| 100 0100 | 104 | 68 | 44 | D |
| 100 0101 | 105 | 69 | 45 | E |
| 100 0110 | 106 | 70 | 46 | F |
| 100 0111 | 107 | 71 | 47 | G |
| 100 1000 | 110 | 72 | 48 | H |
| 100 1001 | 111 | 73 | 49 | I |
| 100 1010 | 112 | 74 | 4A | J |
| 100 1011 | 113 | 75 | 4B | K |
| 100 1100 | 114 | 76 | 4C | L |
| 100 1101 | 115 | 77 | 4D | M |
| 100 1110 | 116 | 78 | 4E | N |
| 100 1111 | 117 | 79 | 4F | O |
| 101 0000 | 120 | 80 | 50 | P |
| 101 0001 | 121 | 81 | 51 | Q |
| 101 0010 | 122 | 82 | 52 | R |
| 101 0011 | 123 | 83 | 53 | S |
| 101 0100 | 124 | 84 | 54 | T |
| 101 0101 | 125 | 85 | 55 | U |
| 101 0110 | 126 | 86 | 56 | V |
| 101 0111 | 127 | 87 | 57 | W |
| 101 1000 | 130 | 88 | 58 | X |
| 101 1001 | 131 | 89 | 59 | Y |
| 101 1010 | 132 | 90 | 5A | Z |
| 101 1011 | 133 | 91 | 5B | [ |
| 101 1100 | 134 | 92 | 5C | \ |
| 101 1101 | 135 | 93 | 5D | ] |
| 101 1110 | 136 | 94 | 5E | ^ |
| 101 1111 | 137 | 95 | 5F | \_ |

 | 

| Δυαδ. | Οκτ. | Δεκ. | Δεκαεξ. | Γραφ. |
| --- | --- | --- | --- | --- |
| 110 0000 | 140 | 96 | 60 | ` |
| 110 0001 | 141 | 97 | 61 | a |
| 110 0010 | 142 | 98 | 62 | b |
| 110 0011 | 143 | 99 | 63 | c |
| 110 0100 | 144 | 100 | 64 | d |
| 110 0101 | 145 | 101 | 65 | e |
| 110 0110 | 146 | 102 | 66 | f |
| 110 0111 | 147 | 103 | 67 | g |
| 110 1000 | 150 | 104 | 68 | h |
| 110 1001 | 151 | 105 | 69 | i |
| 110 1010 | 152 | 106 | 6A | j |
| 110 1011 | 153 | 107 | 6B | k |
| 110 1100 | 154 | 108 | 6C | l |
| 110 1101 | 155 | 109 | 6D | m |
| 110 1110 | 156 | 110 | 6E | n |
| 110 1111 | 157 | 111 | 6F | o |
| 111 0000 | 160 | 112 | 70 | p |
| 111 0001 | 161 | 113 | 71 | q |
| 111 0010 | 162 | 114 | 72 | r |
| 111 0011 | 163 | 115 | 73 | s |
| 111 0100 | 164 | 116 | 74 | t |
| 111 0101 | 165 | 117 | 75 | u |
| 111 0110 | 166 | 118 | 76 | v |
| 111 0111 | 167 | 119 | 77 | w |
| 111 1000 | 170 | 120 | 78 | x |
| 111 1001 | 171 | 121 | 79 | y |
| 111 1010 | 172 | 122 | 7A | z |
| 111 1011 | 173 | 123 | 7B | { |
| 111 1100 | 174 | 124 | 7C | | |
| 111 1101 | 175 | 125 | 7D | } |
| 111 1110 | 176 | 126 | 7E | ~ |

 |

Άλλες ονομασίες
---------------

Ένα RFC του 1992 και η καταχώριση συνόλων χαρακτήρων της IANA (Internet Assigned Numbers Authority) αναγνωρίζουν τις ακόλουθες ονομασίες για τον ASCII ως άλλες ονομασίες κατάλληλες για χρήση στο Διαδίκτυο:

* ANSI\_X3.4-1968 (κανονικό όνομα)
* iso-ir-6
* ANSI\_X3.4-1986
* ISO\_646.irv:1991
* ASCII (με τις παραλλαγές ASCII-7 και ASCII-8)
* ISO646-US
* US-ASCII (το προτιμώμενο όνομα MIME)
* us
* IBM367
* cp367
* csASCII

Από αυτά η IANA ενθαρρύνει την χρήση του ονόματος «US-ASCII» στο Διαδίκτυο. Βρίσκει κανείς αυτή την ονομασία στην προαιρετική παράμετρο «charset» στις κεφαλίδες κάποιων μηνυμάτων MIME, στο αντίστοιχο μετα-στοιχείο κάποιων εγγράφων HTML, και στο τμήμα του προλόγου όπου γίνεται η δήλωση της κωδικοποίησης σε κάποια έγγραφα XML.

Παραλλαγές
----------

Καθώς η τεχνολογία των υπολογιστών διαδόθηκε σε όλο τον κόσμο, διάφορα σώματα τυποποίησης και εταιρείες ανέπτυξαν ποικιλίες του ASCII ώστε να εκφραστούν γλώσσες που χρησιμοποιούν το λατινικό αλφάβητο. Κάποιες μπορούν να ταξινομηθούν ως επεκτάσεις του ASCII, αν και ο όρος κάποιες φορές χρησιμοποιείται κακώς περιλαμβάνοντας όλες τις ποικιλίες, περιλαμβάνοντας αυτές που δεν διατηρούν τον χάρτη χαρακτήρων του ASCII στο εύρος των 7-bit.

Η κωδικοποίηση PETSCII που χρησιμοποίησε η Commodore International για τα 8-bit συστήματά της είναι πιθανώς μοναδική ανάμεσα στις μετά το 1970 κωδικοποιήσεις καθώς βασίζεται στον ASCII-1963 αντί για τον πιο κοινό ASCII-1967, όπως για παράδειγμα οι κωδικοποιήσεις του ZX Spectrum. Τα συστήματα Atari και Galaksija χρησιμοποιούσαν επίσης ποικιλίες του ASCII.

### Ασυμβατότητα και διασυμβατότητα

Από την αρχή της ανάπτυξης του ASCII, υπήρχε η πρόθεση να είναι απλώς μία από αρκετές εθνικές παραλλαγές ενός διεθνούς προτύπου κωδικοποίησης χαρακτήρων, που τελικώς δημοσιεύτηκε ως ISO/IEC 646 (1972), το οποίο θα είχε κοινούς τους περισσότερους χαρακτήρες αλλά διαφορετικούς χρήσιμους τοπικά χαρακτήρες σε δεσμευμένες για εθνική χρήση θέσεις. Ωστόσο στα τέσσερα χρόνια που πέρασαν από την δημοσίευση του ASCII-1963 και την πρώτη αποδοχή του ISO ως διεθνή πρόταση το 1967 ήταν η αιτία η επιλογές του ASCII για την εθνική χρήση χαρακτήρων να μοιάζουν με ντε φάκτο πρότυπο για τον κόσμο, προκαλώντας σύγχυση και ασυμβατότητα όταν οι άλλες χώρες ξεκίνησαν να θέτουν δικούς τους χαρακτήρες σε αυτά τα σημεία.

Ο ISO/IEC 646 όπως και ο ASCII είναι σύνολο χαρακτήρων 7-bit. Δεν διέθετε έτσι επιπλέον θέσεις, έτσι στις ίδιες θέσεις κωδικοποιήθηκαν διαφορετικοί χαρακτήρες σε διαφορετικές χώρες. Ορίστηκαν κωδικοί διαφυγής για να υποδεικνύουν ποια εθνική παραλλαγή εφαρμόστηκε σε ένα κομμάτι κειμένου, αλλά χρησιμοποιούνταν σπάνια, έτσι ήταν συχνά αδύνατο να γνωρίζει κανείς σε ποια παραλλαγή έπρεπε να δουλέψει και συνεπώς ποιους χαρακτήρες αναπαριστούσε ένας κωδικός, ενώ τα συστήματα επεξεργασίας κειμένου δεν μπορούσαν εν γένει να εργαστούν με πάνω από μία παραλλαγή. 

Επειδή οι χαρακτήρες για τις αγκύλες στον ASCII είχαν τοποθετηθεί στις θέσεις εθνικής χρήσης, που χρησιμοποιούνταν για γράμματα με διακριτικά στις εθνικές παραλλαγές του ISO/IEC 646, ένας Γερμανός, Γάλλος ή Σουηδός κτλ. προγραμματιστής χρησιμοποιώντας την εθνική παραλλαγή του ISO/IEC 646 αντί του ASCII έπρεπε να γράφει και συνεπώς να διαβάζει κάτι σαν:

`ä aÄiÜ='Ön'; ü`
αντί για:

`{ a[i]='\n'; }`
Έτσι δημιουργήθηκαν τριγράμματοι κωδικοί για την C ώστε να λυθεί αυτό το πρόβλημα για την ANSI C, αν και η καθυστερημένη εισαγωγή τους και η ασυνεπής εφαρμογή τους στους μεταγλωττιστές περιόρισαν την χρήση τους. 

Τελικά, καθώς οι υπολογιστές 18 και 32 bit άρχισαν να αντικαθίστανται από 8, 16 και 32 bit, διαδόθηκε η χρήση των 8-bit για την αποθήκευση κάθε χαρακτήρα στην μνήμη, δίνοντας έτσι τη δυνατότητα για εκτεταμένες παραλλαγές 8-bit του ASCII, όπου οι 128 επιπλέον χαρακτήρες παρείχαν χώρο για την αποφυγή του μεγαλύτερου μέρους της αμφισημίας που ήταν απαραίτητη στις κωδικοποιήσεις 7-bit.

Για παράδειγμα, η IBM ανέπτυξε κωδικοσελίδες 8-bit, όπως η κωδικοσελίδα 437, στις οποίες αντικατέστησε τους χαρακτήρες ελέγχου με γραφικά σύμβολα, όπως οι φατσούλες, και προσέθεσε επιπλέον χαρακτήρες στις τελευταίες 128 θέσεις. Λειτουργικά συστήματα όπως το DOS υποστήριζαν αυτές τις κωδικοσελίδες, και οι κατασκευαστές των IBM PC τους υποστήριζαν στο υλικό. Η Digital Equipment Corporation ανέπτυξε το Multinational Character Set (DEC-MCS) για χρήση στο δημοφιλές τερματικός της VT220.

Πρότυπα οκτώ bit όπως το ISO/IEC 8859 (προέκυψε από το DEC-MCS) και το Mac OS Roman αναπτύχθηκαν ως πραγματικές επεκτάσεις του ASCII, αφήνοντας την αρχική διάταξη χαρακτήρων ανέπαφη, προσθέτοντας όμως επιπλέον ορισμούς χαρακτήρων μετά τους πρώτους 128. Αυτό επέτρεψε την αναπαράσταση χαρακτήρων που χρησιμοποιούνταν από μεγαλύτερο φάσμα γλωσσών. Επειδή υπήρξαν πολλά ανταγωνιστικά πρότυπα 8-bit, εξακολούθησαν να υπάρχουν ασυμβατότητες και περιορισμοί. Σήμερα ακόμα, η ISO-8859-1 (Latin 1), η παραλλαγή του, Windows-1252 (που συχνά χαρακτηρίζεται εσφαλμένα ως ISO-8859-1), και η πρωτότυπη 7-bit ASCII παραμένουν οι πιο κοινές κωδικοποιήσεις.

Unicode
-------

Το Unicode και το ISO/IEC 10646 Universal Character Set (UCS) έχουν πολύ ευρύτερο μητρώο χαρακτήρων, και οι διάφορες μορφές κωδικοποίησής τους άρχισαν να εκτοπίζουν το ISO/IEC 8859 και το ASCII ταχύτατα σε πολλά περιβάλλοντα. Ενώ ο ASCII περιορίζεται σε 128 χαρακτήρες, το Unicode και το UCS υποστηρίζουν πολύ περισσότερους διαχωρίζοντας τις έννοιες της μοναδικής ταυτοποίησης (χρησιμοποιώντας φυσικούς αριθμούς που αποκαλούνται κωδικά σημεία, *code points*) και της κωδικοποίησης (σε δυαδικές μορφές 8, 16 ή 32 bit, που ονομάζονται UTF-8, UTF-16 και UTF-32).

Για να είναι δυνατή η προς τα πίσω συμβατότητα, οι 128 χαρακτήρες του ASCII και οι 256 του ISO-8859-1 (Latin 1) έχουν τοποθετηθεί στα ίδια κωδικά σημεία της κωδικοποίησης Unicode/UCS. συνεπώς ο ASCII μπορεί να θεωρηθεί διάταξη 7-bit για ένα πολύ μικρό υποσύνολο της Unicode/UCS και αντίστοιχα οι μορφές κωδικοποίησης UTF- είναι δυαδικά συμβατές με τον ASCII για κωδικά σημεία κάτω από το 128, που σημαίνει ότι όλος ο ASCII είναι έγκυρος εντός του UTF-8. Οι άλλες μορφές κωδικοποίησης αναπαριστούν τον ASCII με τον τρόπο που αναπαριστούν τους πρώτους 128 χαρακτήρες του Unicode, αλλά χρησιμοποιούν 16 ή 32 bit ανά χαρακτήρα και έτσι απαιτούν μετατροπή για να είναι συμβατές.

Ταξινόμηση
----------

Η ταξινόμηση σύμφωνα με την σειρά τον χαρακτήρων όπως αυτοί βρίσκονται στον ASCII ονομάζεται στα αγγλικά *ASCIIbetical* order. Η ταξινόμηση δεδομένων γίνεται συχνά με αυτό τον τρόπο αντί για την τυπική αλφαβητική σειρά. Οι κύριες αποκλίσεις από την σειρά στο ASCII είναι:

* Όλοι οι κεφαλαιογράμματοι χαρακτήρες είναι πριν από τους μικρογράμματους, π.χ. Το «Z» είναι από πριν το «a»
* Τα ψηφία και πολλά σημεία στίξης βρίσκονται πριν από τα γράμματα, π.χ. το «4» είναι πριν το «one»

Ένα ενδιάμεσο σύστημα ταξινόμησης που μπορεί εύκολα να προγραμματιστεί σε υπολογιστή είναι η μετατροπή όλων των κεφαλαίων σε μικρά πριν την σύγκριση των αξιών κατά ASCII.

Παραπομπές
----------

1. ↑  "RFC 20 : ASCII format for Network Interchange", ANSI X3.4-1968, 16 Οκτωβρίου 1969.
2. ↑  Audio pronunciation for ASCII Αρχειοθετήθηκε 2019-09-19 στο Wayback Machine.. *Merriam Webster*. Accessed 2008-04-14.
3. 1 2  Mary Brandel (July 6, 1999). 1963: The Debut of ASCII: *CNN*. Accessed 2008-04-14.
4. ↑  American Standard Code for Information Interchange, ASA X3.4-1963, American Standards Association, June 17, 1963
5. ↑  USA Standard Code for Information Interchange, USAS X3.4-1967, United States of America Standards Institute, July 7, 1967
6. ↑  American National Standard for Information Systems — Coded Character Sets — 7-Bit American National Standard Code for Information Interchange (7-Bit ASCII), ANSI X3.4-1986, American National Standards Institute, Inc. March 26, 1986
7. ↑  International Organization for Standardization (December 1, 1975). "The set of control characters for ISO 646 Αρχειοθετήθηκε 2012-07-29 στο Wayback Machine.". *Internet Assigned Numbers Authority Registry*. Alternate U.S. version:  Αρχειοθετήθηκε 2006-03-05 στο Wayback Machine.. Accessed 2008-04-14.
8. 1 2  Mackenzie, p.223.
9. 1 2 3  Internet Assigned Numbers Authority (May 14, 2007). "Character Sets". Accessed 2008-04-14.
10. ↑  Dubost, Karl (6 Μαΐου 2008). «utf-8 Growth On The Web». *W3C Blog*. World Wide Web Consortium. Ανακτήθηκε στις 15 Αυγούστου 2010.
11. ↑  Davis, Mark (5 Μαΐου 2008). «Moving to Unicode 5.1». *Official Google Blog*. Google. Ανακτήθηκε στις 15 Αυγούστου 2010.
12. ↑  Davis, Mark (28 Ιανουαρίου 2010). «Unicode nearing 50% of the web». *Official Google Blog*. Google. Ανακτήθηκε στις 15 Αυγούστου 2010.
13. ↑  Μαθήματα κωδικοποίησης τηλέτυπων
14. ↑  Decision 4. Mackenzie, p.215.
15. ↑  Decision 5. Mackenzie, p.217.
16. ↑  Sawyer A. Sawyer and Steven George Krantz (January 1, 1995). *A Tex Primer for Scientists*. CRC Press. ISBN 0-8493-7159-7. p.13.
17. ↑  Decision 8,9. Mackenzie, p.220.
18. ↑  Decision 10. Mackenzie, p.237.
19. ↑  Decision 14. Mackenzie, p.228.
20. ↑  Decision 18. Mackenzie, p.238.
21. ↑  Mackenzie, p.243.
22. ↑  Mackenzie, p.243-245.
23. ↑  Mackenzie, p.66, 245.
24. ↑  Mackenzie, p.435.
25. ↑  Brief Report: Meeting of CCITT Working Party on the New Telegraph Alphabet, May 13–15, 1963.
26. ↑  Report of ISO/TC/97/SC 2 – Meeting of October 29–31, 1963.
27. ↑  Report on Task Group X3.2.4, June 11, 1963, Pentagon Building, Washington, DC.
28. ↑  Report of Meeting No. 8, Task Group X3.2.4, December 17 and 18, 1963
29. ↑  Mackenzie, p.247–248.
30. ↑  Bob Bemer (n.d.). Bemer meets Europe Αρχειοθετήθηκε 2013-10-17 στο Wayback Machine.. *Trailing-edge.com*. Accessed 2008-04-14. Employed at IBM at that time
31. ↑  «Biography of Robert William Bemer».
32. ↑  Lyndon B. Johnson (March 11, 1968). Memorandum Approving the Adoption by the Federal Government of a Standard Code for Information Interchange. *The American Presidency Project*. Accessed 2008-04-14.
33. ↑  RFC 1345 (June 1992).
34. ↑  "Specific Criteria," attachment to memo from R. W. Reach, "X3-2 Meeting – September 14 and 15," September 18, 1961
35. ↑  R. Maréchal, ISO/TC 97 – Computers and Information Processing: Acceptance of Draft ISO Recommendation No. 1052, December 22, 1967
36. ↑  ASCIIbetical definition Αρχειοθετήθηκε 2013-03-09 στο Wayback Machine.. *PC Magazine*. Accessed 2008-04-14.

Περαιτέρω ανάγνωση
------------------

* R.W. Bemer, "A Proposal for Character Code Compatibility," Communications of the ACM, Vol. 3. No. 2, February, 1960, pp. 71–72
* R.W. Bemer, "The Babel of Codes Prior to ASCII: The 1960 Survey of Coded Character Sets: The Reasons for ASCII", May 23, 2003 (from H.J. Smith, Jr. F.A. Williams, "Survey of punched card codes", *Communications of the ACM* 3, 639 & 642, December 1960)
* G.S. Robinson & C. Cargill (October 1996). «History and impact of computer standards». *Computer Vol. 29, no. 10*: σελ. 79–85.
* *American National Standard for Information Systems — Coded Character Sets — 7-Bit American National Standard Code for Information Interchange (7-Bit ASCII), ANSI X3.4-1986*. American National Standards Institute (ANSI). 26 Μαρτίου 1986.
* Charles E. Mackenzie (1980). *Coded Character Sets, History and Development*. Addison-Wesley. ISBN 0-201-14460-3.

Δείτε επίσης
------------

* Unicode
* UTF-8

Εξωτερικοί σύνδεσμοι
--------------------

|  |  |
| --- | --- |
| Commons logoCommons logo | Τα Wikimedia Commons έχουν πολυμέσα σχετικά με το θέμα   **ASCII** |

* A history of ASCII, its roots and predecessors (Ιστορία του ASCII, οι ρίζες του και οι πρόδρομοί του) του Tom Jennings (29 Οκτωβρίου, 2004)
* Το υποσύνολο ASCII του Unicode
* Η εξέλιξη των Κωδικών Χαρακτήρων, 1874–1968[*νεκρός σύνδεσμος*]
* Σκαναρισμένο αντίγραφο του προτύπου X3.4-1963 της American Standard Code for Information Interchange ASA

  


|  |  |  |
| --- | --- | --- |
| 

|  |  |
| --- | --- |
| Καθιερωμένοι όροι | 
* WorldCat
* LCCN: sh98005902
* GND: 4665825-7

 |

 |