ASCII
Από τη Βικιπαίδεια, την ελεύθερη εγκυκλοπαίδεια
Ο ASCII (American Standard Code for Information Interchange, Αμερικανικός Πρότυπος Κώδικας για Ανταλλαγή Πληροφοριών) είναι ένα κωδικοποιημένο σύνολο χαρακτήρων του λατινικού αλφάβητου όπως αυτό χρησιμοποιείται σήμερα στην Αγγλική γλώσσα και σε άλλες δυτικοευρωπαικές γλώσσες. Χρησιμοποιείται κυρίως στους υπολογιστές και άλλες συσκευές τηλεπικοινωνίας για αναπαράσταση κειμένου, καθώς επίσης για έλεγχο συσκευών που δουλεύουν με κείμενο.
Οι εκτυπώσιμοι χαρακτήρες του ASCII (με κωδικούς από 32 μέχρι 126) είναι σε αριθμητική σειρά οι(συμπεριλαμβανομένου του κενού χαρακτήρα "space"):
!"#$%&'()*+,-./0123456789:;<=>?
@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_
`abcdefghijklmnopqrstuvwxyz{|}~
Πίνακας περιεχομένων |
[Επεξεργασία] Γενικά
Η κωδικοποίηση ASCII και οι συμβατές με αυτήν κωδικοποιήσεις (δείτε παρακάτω) χρησιμοποιούνται σχεδόν σε όλους τους υπολογιστές σήμερα. Το MIME όνομα για αυτήν την κωδικοποίηση είναι "us-ascii".
Ο ΑSCII είναι, ακριβέστερα, κώδικας των επτά μπιτ, που σημαίνει ότι χρησιμοποιεί όλες τις δυνατές ακολουθίες επτά δυαδικών ψηφίων (ένα διάστημα από το 0 μέχρι το 127 στο δεκαδικό σύστημα αρίθμησης) προκειμένου να αναπαραστήσει τους εν λόγω χαρακτήρες.
Όταν πρωτοπαρουσιάστηκε ο ascii, πολλοί υπολογιστές χρησιμοποιούσαν σαν ελάχιστο μέγεθος οργάνωσης της μνήμης το byte. Έτσι σε αυτούς τους υπολογιστές το όγδοο bit ενός byte που χρησίμευε για την κωδικοποίηση χαρακτήρα στο ascii χρησιμοποιούνταν είτε σαν bit ισοτιμίας για έλεγχο λαθών είτε το έθεταν ίσο με το μηδέν και έμενε κατ' ουσίαν αχρησιμοποίητο.
Ο ASCII πρωτοδημοσιεύτηκε ως Πρότυπο το 1963 από τον Αμερικανικό Οργανισμό Τυποποίησης (ASA), που αργότερα μετονομάστηκε σε ANSI. Υπάρχουν πολλές παραλλαγές του, αλλά η τρέχουσα πιο διαδεδομένη μορφή του είναι η ANSI X3.4-1986, τυποποιημένη και σαν ECMA-6, ISO/IEC 646:1991 International Reference Version, ITU-T Recommendation T.50 (09/92), and Request for Comments RFC 20. Υπάρχει επίσης στο πρότυπο Unicode (που αντικατέστησε το ASCII), ως οι πρώτοι 128 χαρακτήρες.
Ιστορικά ο ASCII αναπτύχθηκε από τους τηλεγραφικούς κώδικες και η πρώτη του εμπορική εφαρμογή ήταν σαν 7-bit κώδικας τηλε-εκτυπωτών που εμπορεύονταν η εταιρία Bell System, η οποία αρχικά σχεδίαζε να χρησιμοποιήσει ένα κώδικα 6-bit που προέρχονταν από το Fieldata που πρόσθετε σημεία στίξης και μικρά γράμματα στον ακόμα πρωθύστερο κώδικα τηλεκτυπωτών 5-bit Baudot αλλά τελικά πείστηκε να προσχωρήσει στην υποεπιτροπή του οργανισμού τυποποίησης ANSI που ανέπτυσε τον ASCII. Ο κώδικας Baudot βοήθησε στην αυτοματοποίηση της αποστολής και παραλαβής μηνύματων μέσω τηλέγραφου και πήρε και πολλά χαρακτηριστικά και από τον ακόμα παλίοτερο και πασίγνωστο κώδικα Morse. Όμως σε αντίθεση με αυτόν ο baudot κώδικας είχε σταθερό μήκος κωδικοποίησης. Σε σύγκριση με άλλους παλιότερους κώδικες τηλέγραφου, ο προτεινόμενος κώδικας από την Bell και ο ASCII ήταν και οι δύο αναδιαταγμένοι για πιο εύκολη ταξινόμηση λιστών,και πρόσθεταν και επιπλέον χαρακτηριστικά και για άλλες συσκευές εκτός από τους τελεκτυπωτές. Μερικά χαρακτηριστικά του ASCII όπως η 'Ακολουθία διαφυγής-ESCape sequance' οφείλονταν στον Bob Bemer.
[Επεξεργασία] Χαρακτήρες ελέγχου του ASCII
Οι πρώτοι 32 κώδικες (αριθμοί 0–31 δεκαδικό)στο ascii είναι δεσμευμένοι για χαρακτήρες ελέγχου για τους οποίους δεν υπήρχε αρχικά η πρόθεση να κωδικοποιούν χαρακτήρες αλλά να χρησιμεύουν για έλεγχο συσκευών όπως εκτυπωτές που έκαναν χρήση του ascii. Για παραδειγμα ο χαρακτηρας 10 αναπαριστα την λειτουργια τροφοδοσία χαρτιού που ωθεί τον εκτυπωτή να προχωρήσει το χαρτί. Ο χαρακτήρας 27 αναπαριστά το κουμπί "escape" που βρίσκεται συνήθως στην πάνω αριστερή γωνία των κοινότερων πληκτρολογίων . Ο κώδικας 127 (και τα επτά bit με την τιμή ένα) είναι ακόμα ένας ειδικός χαρακτήρας γνωστός ως "delete-σβήσιμο", ο οποίος χρησίμευε γα να "σβήνει" μια περιοχή χτυπημένου χαρτιού, ένα δημοφιλές μέσο αποθήκευσης δεδομένων μέχρι τις αρχές της δεκαετίας του 1980, με το να το χτυπάει σε όλες τις πιθανές θέσεις.
Πολλοί από τους χαρακτήρες ελέγχου του ASCII χρησιμεύουν για να σημαδεύουν δεδομένα πακέτων για να έλεγχο ενός πρωτόκολλου μετάδοσης δεδομένων (πχ ENQuiry-έρευνα που ερευνά αν υπάρχουν άλλοι υπολογιστές εκεί έξω, ACKnowledge-αναγνώριση,Αρχή επικεφαλίδας,Τέλος κειμένου κτλ. Οι χαρακτήρες ESCape-διαφυγή και SUBstitute-αντικατάσταση μπορούν να χρησιμοποιηθούν για να σημαδέψουν δυαδικά δεδομένα ώστε αν περιέχουν κώδικες που αντοιστιχούν σε χαρακτήρες ελέγχου πρωτοκόλλου να αγνοηθούν και να επεξεργαστούν σαν απλά δεδομένα.
Οι χαρακτήρες διαχώρισης(Record Separator, etc.) χρησιμοποιούνταν με το συστήμα με μαγνητικές ταινίες.
XON and XOFF are common interpretations of two of the Device Control characters and are generally used to throttle data flow to a slow device, such as a printer, from a fast device, such as a computer so data does not overrun and get lost.
Πρώιμοι χρήστες του ASCII υιοθέτησαν κάποιους από τους χαρακτήρες ελέγχου για να αναπαράστησουν μετά-πληροφορίες όπως end-of-line(τέλος γραμμής), start/end(αρχή/τέλος) ενός στοιχείου δεδομένων κτλ.Αυτές οι αναθέσεις νέας σημασίας στους χαρακτήρες ελέγχου συχνά αντικρούουν από σύστημα σε σύστημα.Πχ οι χαρακτήρες ελέγχου που αναπαριστούν το τέλος γραμμής διαφέρουν στα Unix συστήματα από τα windows .Έτσι προκειμένου να δείς ένα απλό αρχείο κείμενου ascii που έχει δημιουργηθεί σε πλατφόρμα unix μέσα σε περιβάλλον windows θα πρέπει το αρχείο να υποστεί κάποια ανάλογη μετατροπή,αλλιώς λόγω της διαφορετικάς αυτής ο επεξεργαστής κειμένου των windows δεν θα καταλάβει ότι πρέπει να αλλάξει γραμμή και ένα πχ κείμενο 100 γραμμών θα προσπαθήσει να το δείξει σε μια μόνο γραμμή!
Binary | Decimal | Hex | Abbreviation | Printable Representation |
Keyboard Access |
Name/Meaning |
---|---|---|---|---|---|---|
0000 0000 | 0 | 00 | NUL | ␀ | ^@ | Null character |
0000 0001 | 1 | 01 | SOH | ␁ | ^A | Start of Header |
0000 0010 | 2 | 02 | STX | ␂ | ^B | Start of Text |
0000 0011 | 3 | 03 | ETX | ␃ | ^C | End of Text |
0000 0100 | 4 | 04 | EOT | ␄ | ^D | End of Transmission |
0000 0101 | 5 | 05 | ENQ | ␅ | ^E | Enquiry |
0000 0110 | 6 | 06 | ACK | ␆ | ^F | Acknowledgement |
0000 0111 | 7 | 07 | BEL | ␇ | ^G | Bell |
0000 1000 | 8 | 08 | BS | ␈ | ^H | Backspace |
0000 1001 | 9 | 09 | HT | ␉ | ^I | Horizontal Tab |
0000 1010 | 10 | 0A | LF | ␊ | ^J | Line feed |
0000 1011 | 11 | 0B | VT | ␋ | ^K | Vertical Tab |
0000 1100 | 12 | 0C | FF | ␌ | ^L | Form feed |
0000 1101 | 13 | 0D | CR | ␍ | ^M | Carriage return |
0000 1110 | 14 | 0E | SO | ␎ | ^N | Shift Out |
0000 1111 | 15 | 0F | SI | ␏ | ^O | Shift In |
0001 0000 | 16 | 10 | DLE | ␐ | ^P | Data Link Escape |
0001 0001 | 17 | 11 | DC1 | ␑ | ^Q | Device Control 1 — oft. XON |
0001 0010 | 18 | 12 | DC2 | ␒ | ^R | Device Control 2 |
0001 0011 | 19 | 13 | DC3 | ␓ | ^S | Device Control 3 — oft. XOFF |
0001 0100 | 20 | 14 | DC4 | ␔ | ^T | Device Control 4 |
0001 0101 | 21 | 15 | NAK | ␕ | ^U | Negative Acknowledgement |
0001 0110 | 22 | 16 | SYN | ␖ | ^V | Synchronous Idle |
0001 0111 | 23 | 17 | ETB | ␗ | ^W | End of Trans. Block |
0001 1000 | 24 | 18 | CAN | ␘ | ^X | Cancel |
0001 1001 | 25 | 19 | EM | ␙ | ^Y | End of Medium |
0001 1010 | 26 | 1A | SUB | ␚ | ^Z | Substitute |
0001 1011 | 27 | 1B | ESC | ␛ | ^[ or ESC | Escape |
0001 1100 | 28 | 1C | FS | ␜ | ^\ | File Separator |
0001 1101 | 29 | 1D | GS | ␝ | ^] | Group Separator |
0001 1110 | 30 | 1E | RS | ␞ | ^^ | Record Separator |
0001 1111 | 31 | 1F | US | ␟ | ^_ | Unit Separator |
0111 1111 | 127 | 7F | DEL | ␡ | ^?, Delete, or Backspace | Delete |
Στον πίνακα παραπάνω η πέμπτη στήλη περιέχει σύμβολα προορισμένα για αναπαράσταση κωδικών ελέγχου σε ένα ρεύμα δεδομένων, όταν θέλουμε να εμφανιστούν ή να τυπωθούν χωρίς να προκαλέσουν κάποια άλλη ενέργεια. Ο πλοηγός του διαδικτύου που έχετε μπορεί να χρειάζεται εγκατάσταση επιπλέον γραμματοσειρών προκειμένου να απεικονίσει αυτά τα σύμβολα.
Η έκτη στήλη δείχνει τον συνδυασμό πλήκτρων που παραδοσιακά χρησιμοποιούνται για εισαγωγή χαρακτήρων ελέγχου από το πληκτρολόγιο.Σε αυτήν την στήλη το σύμβολο ("^") αναπαριστά το πλήκτρο "Control"/"Ctrl" που πρέπει να κρατηθεί πατημένο ενώ πατάμε το επόμενο πλήκτρο, πχ "^Z" σημαίνει να κρατήσουμε πατημένο το πλήκτρο Ctrl καθώς πιέχουμε το πλήκτρο Z.Αυτός ο συμβολισμός χρησιμοποιείται μερικές φορές και από λογισμικό σαν μια αναπαράσταση χαρακτήρων ελέγχου που δεν μπόρεσε να επεξεργαστεί.
[Επεξεργασία] Εκτυπώσιμοι χαρακτήρες του ASCII
Ο κώδικας 32 , το 'διάστημα' ή 'κενό' αναπαριστά το κενό μεταξύ των λέξεων που δημιουργείται από τη μεγάλη μπάρα του κενού του πληκτρολογίου. Οι κωδικοί από το 33 μέχρι το 126 καλούνται εκτυπώσιμοι χαρακτήρες και αναπαριστούν γράμματα,ψηφία,σημεία στίξης και μερικά άλλα σύμβολα.
|
|
|
Ας σημειωθεί ότι οι κεφαλαίοι χαρακτήρες μπορούν να μετετραπούν σε μικρούς προσθέτοντας 32 στον ascii κώδικά τους, κάτι που το καταφέρνουμε απλά θέτοντας την τιμή 1 στο έκτο bitλιγότερο σημαντικό bit.
[Επεξεργασία] Ψευδώνυμα του ASCII
Το RFC 1345, που δημοσιεύτηκε τον Ιούνιο του 1992, και η IANA βάση συνόλων κωδικοποιημένων χαρακτήρων, αναγνωρίζει τα παρακάτω ψευδόνημα του ASCII σαν κατάλληλα για χρήση στο διαδίκτυο:
- ANSI_X3.4-1968 (canonical name)
- ANSI_X3.4-1986
- ASCII
- US-ASCII (preferred MIME name)
- us
- ISO646-US
- ISO_646.irv:1991
- iso-ir-6
- IBM367
- cp367
- csASCII
Από αυτά μόνο τα ονόματα US-ASCII και ASCII χρησιμοποοιούνται συχνά, και τα βρίσκουμε συχνά σαν προοαρετικές "charset" παράμετρους στην Content-Type επικεφαλίδα MIME μηνυμάτων, στο ισοδύναμο "meta" στοιχείο κάποιων HTML ντοκουμέντων , και στη δήλωση κωδικοποίησης στη κεφαλίδα κάποιων XML ντοκουμέντων.
[Επεξεργασία] Παραλλαγές του ASCII
Καθώς διαδόθηκε η τεχνολογία των υπολογιστών ανά τον κόσμο πολλές παραλλαγές του ASCII αναπτύχθηκαν από εταιρίες και οργανισμούς τυποποίησης προκειμένου να διευκοληνθεί η κωδικοποίηση μη-αγγλικών γλωσσών που χρησιμοποιούσαν όμως το ρομανικό αλφάβητο. Μερικές από αυτές τις παραλλαγές μπορούν να θεωρηθούν Επεκταμένο ASCII ,αν και ο όρος μερικές φορές χρησιμοποιείται λανθασμένα για αναφορά σε όλες τις παραλλαγές συμπεριλαμβανομένου αυτών που δεν διατηρούν την κωδικοποίηση σε 7-bit μόνο.
Ο κώδικας ISO 646 (1972) ήταν η πρώτη προσπάθεια να αρθεί η ευνοιική μεταχείριση των αγγλικών αν και δημιούργησε προβλήματα συμβατότητας αφού παρέμεινε ένας κώδικας 7-bit.Δεν υπήρχαν επιπλέον κώδικες διαθέσιμοι έτσι κάποιοι από τους ήδη υπάρχοντες ξανά-ανατέθηκαν σε παραλλαγές συγκεκριμέων γλωσσών.Ήταν έτσι αδυνατό να γνωρίζεις ποιόν χαρακτήρα αναπαριστά ένας κωδικός αν δεν ήξερες ποιά ήταν η συγκεκριμένη παραλλαγή,και οι επεξεργαστές κειμένου ήταν άλλωστε φτιαγμένοι γενικά ώστε να μπορούν να δουλεύουν μόνο με μία παραλλαγή.
Τελικά , προηγμένη τεχνολογία έφερε εξωγενή μέσα για την αναπαράσταση πληροφορίας(πχ μπιτ ισοτιμίας) που προηγούμενα ήταν κωδικοποιημένη στο όγδοο μπιτ κάθε μπαϊτ,απελευθερώνοντας αυτό το μπίτ για την πρόσθεση επιπλέον 128 κωδικών για αναθέσεις νέων χαρακτήρων.Για παράδειγμα η IBMανέπτυξε κωδικές σελίδες οχτώ μπιτ, όπως η κωδική σελίδα 437, η οποία αντικαταστούσε τους χαρακτήρες ελέγχου με γραφικά σύμβολα όπως χαμογελαστές φατσούλες ,και απεικόνιζε επιπρόσθετους χαρακτήρες στα πάνω 128 μπάϊτς.Αυτές οι σελίδες κωδικών υποστηρίχτηκαν από κατασκευαστές IBM PC καθώς και από λειτουργικά συστήματα όπως το,DOS.
Στάνταρτς των οχτώ-μπιτ όπως τα ISO/IEC 8859 και MacRoman αποτελούσαν επεκτάσεις του ASCII, αφήνοντας άθικτη την αρχική κωδικοποίηση και απλά πρόσθεταν επιπλέον χαρακτήρες στις τιμές από 128 και πάνω. Αυτό επέτρεψε να αναπαρασταθούν περισσότερες γλώσσες αλλά αυτά τα στάνταρτς υπέφεραν από ασυμβατότητες και άλλους περιορισμούς. Παρόλαυτά,οι ISO/IEC 8859-1 και ο 7-bit ASCII είναι οι ποιό κοινοί κωδικοί χαρακτήρων εν χρήσρη σήμερα.
Το κωδικοποιημένο σύνολο χαρακτήρων Unicode και το ISO/IEC 10646: Καθολικό Σύνολο Χαρακτήρων,' Universal Character Set(UCS)', έχουν ένα πολύ μεγαλύτερο σύνολο χαρακτήρων και οι διάφορες υλοποιήσεις τους γρήγορα υποκαθιστούν τα ISO/IEC 8859 και ASCII. Ενώ το ASCII ορίζεται στην βάση κωδικών 7-μπιτ ,το Unicode και το UCS ορίζονται με όρους αφηρημένων "σημείων κωδικών(code points)": μη-αρνητικών ακεραίων , οι οποίοι μπορούν να απεικονιστούν με χρήση διαφόρων σχημάτων κωδικοποίησης σε 1 ή περισσότερα bytes. Για να επιτραπεί αναδρομική συμβατότητα το Unicode και το UCS αναθέτουν τα πρώτα 128 κωδικά σημεία στους ίδιους χαρακτήρες με το ASCII. Το ASCII μπορεί λοιπόν να θεωρηθεί σαν ένα 7-μπιτ σχήμα κωδικοποίησης για ένα πολύ μικρό υποσύνολο του Unicode και του UCS. Το δημοφιλές σχήμα κωδικοποίησης του unicode UTF-8 χρησιμοποιεί από ένα μέχρι τέσσερα bytes για να αναπαραστήσει τα κωδικά σημεία χαρακτήρες,και είναι όμοιο με το ASCII για τιμές κωδικών κάτω από το 128.
ο ASCII περιέχει πολλούς χαρακτήρες που δεν ήταν γνωστοί εξώ από τους κύκλους των ειδικών ,με αποτέλεσμα να είναι ακόμα ρευστή η ονομασία τους.
Η συντομογραφία ASCIIZ or ASCIZ χρησιμοποιείται για την αναφορα σε μια ακολουθία χαρακτήρων του ASCII που τερματίζεται με το μηδέν.
[Επεξεργασία] Δες επίσης
[Επεξεργασία] Σχετικά θέματα
- ASCII τέχνη
- ASCII παιχνίδια
- Δυαδικά αρχεία
- Αρχεία κειμένου
- EBCDIC
- [Εκτεταμένο ASCII]]
- ISCII
- ISO 646
- ISO 8859
- Unicode
- UTF-8
- VISCII
[Επεξεργασία] Υλοποιήσεις του ASCII για συγκεκριμένους υπολογιστές
- ATASCII
- PETSCII
- ZX Spectrum κωδικοποιημένο σύνολο χαρακτήρων
[Επεξεργασία] Εξωτερικοί σύνδεσμοι
- [http://ostermiller.org/calc/ascii.html Έγχρωμος πίνακας ASCII με
τιμές στο δυαδικό,οχταδικό,δεκαδικό και δεκαεξαδικό]
- Standard ECMA-6: 7-bit Coded Character Set 6th edition (December 1991)
- IANA Registry: C0 Set of ISO 646
- IANA Registry: ISO 646, USA Version X3.4 — 1968
- Jargon File: ASCIIbetical
- Bob Bemer's home page some historical notes about ASCII from one of its designers
- A pronunciation guide for ASCII characters (some are more whimsical than others; see especially the end of the list)
- Annotated History of Character Codes by Tom Jennings, World Power Systems
- Learning by Simulations Interactive simulation of ASCII encoding
- Webopedia Characters and ASCII Equivalents
- Character Entity Set(s)
- VisiBone - Web Character Reference
- The Trouble With EM and EN (and Other Shady Characters): A List Apart
- ASCII Chart and Other Resources
- Entities Table