Ποιες είναι οι κωδικοποιήσεις χαρακτήρων όπως το ANSI και το Unicode και πώς διαφέρουν;
ASCII, UTF-8, ISO-8859 ... Μπορεί να έχετε δει αυτά τα παράξενα monikers να επιπλέουν γύρω, αλλά τι σημαίνουν πραγματικά; Διαβάστε παρακάτω καθώς εξηγούμε τι κωδικοποίηση χαρακτήρων είναι και πώς αυτά τα αρκτικόλεξα σχετίζονται με το απλό κείμενο που βλέπουμε στην οθόνη.
Θεμελιώδεις δομικές μονάδες
Όταν μιλάμε για γραπτή γλώσσα, μιλάμε για γράμματα που είναι τα δομικά στοιχεία των λέξεων, τα οποία στη συνέχεια δημιουργούν προτάσεις, παραγράφους κ.ο.κ. Τα γράμματα είναι σύμβολα που αντιπροσωπεύουν ήχους. Όταν μιλάτε για τη γλώσσα, μιλάτε για ομάδες ήχων που έρχονται μαζί για να σχηματίσουν κάποιο νόημα. Κάθε γλωσσικό σύστημα έχει ένα σύνθετο σύνολο κανόνων και ορισμών που διέπουν αυτές τις έννοιες. Εάν έχετε μια λέξη, είναι άχρηστο αν δεν γνωρίζετε από ποια γλώσσα είναι από και μπορείτε να το χρησιμοποιήσετε με άλλους που μιλούν αυτή τη γλώσσα.
(Σύγκριση γραφημάτων Grantha, Tulu και Malayalam, Εικόνα από τη Βικιπαίδεια)
Στον κόσμο των υπολογιστών, χρησιμοποιούμε τον όρο "χαρακτήρας". Ένας χαρακτήρας είναι ένα είδος αφηρημένης έννοιας, που ορίζεται από συγκεκριμένες παραμέτρους, αλλά είναι η θεμελιώδης μονάδα νόημα. Το λατινικό «Α» δεν είναι το ίδιο με ένα ελληνικό «άλφα» ή ένα αραβικό «alif» επειδή έχουν διαφορετικά πλαίσια - είναι από διαφορετικές γλώσσες και έχουν ελαφρώς διαφορετικές προφορές - έτσι μπορούμε να πούμε ότι είναι διαφορετικοί χαρακτήρες. Η οπτική αναπαράσταση ενός χαρακτήρα ονομάζεται "glyph" και διαφορετικά σύνολα glyphs ονομάζονται γραμματοσειρές. Ομάδες χαρακτήρων ανήκουν σε "σύνολο" ή "ρεπερτόριο".
Όταν πληκτρολογείτε μια παράγραφο και αλλάζετε τη γραμματοσειρά, δεν αλλάζετε τις φωνητικές τιμές των γραμμάτων, αλλάζετε τον τρόπο εμφάνισής τους. Είναι μόνο καλλυντικό (αλλά όχι ασήμαντο!). Ορισμένες γλώσσες, όπως οι αρχαίοι Αιγύπτιοι και οι Κινέζοι, έχουν ιδεογράμματα. αυτά αντιπροσωπεύουν ολόκληρες ιδέες αντί για ήχους, και οι προφορές τους μπορεί να διαφέρουν με το χρόνο και την απόσταση. Εάν αντικαταστήσετε έναν χαρακτήρα με έναν άλλο, αντικαθιστάτε μια ιδέα. Είναι κάτι περισσότερο από το να αλλάζεις γράμματα, αλλάζει ένα ιδεόγραμμα.
Κωδικοποίηση χαρακτήρων
(Εικόνα από τη Βικιπαίδεια)
Όταν πληκτρολογείτε κάτι στο πληκτρολόγιο ή φορτώνετε ένα αρχείο, πώς γνωρίζει ο υπολογιστής τι πρέπει να εμφανίζει; Αυτή είναι η κωδικοποίηση χαρακτήρων. Το κείμενο στον υπολογιστή σας δεν είναι γράμματα, είναι μια σειρά από συνδυασμένες αλφαριθμητικές τιμές. Η κωδικοποίηση χαρακτήρων ενεργεί ως ένα κλειδί για το οποίο οι τιμές αντιστοιχούν σε ποιους χαρακτήρες, όπως και ο τρόπος ορθογραφίας υπαγορεύει ποιους ήχους αντιστοιχούν σε ποιά γράμματα. Ο κώδικας Morse είναι ένα είδος κωδικοποίησης χαρακτήρων. Εξηγεί πώς ομάδες μακροχρόνιων και σύντομων μονάδων, όπως οι μπιπ, αντιπροσωπεύουν χαρακτήρες. Στον κώδικα Morse, οι χαρακτήρες είναι απλά αγγλικά γράμματα, αριθμοί και πλήρεις στάσεις. Υπάρχουν πολλές κωδικοποιήσεις χαρακτήρων ηλεκτρονικού υπολογιστή που μεταφράζονται σε γράμματα, αριθμούς, σημάδια έμφασης, σημεία στίξης, διεθνή σύμβολα κ.λπ..
Συχνά σε αυτό το θέμα χρησιμοποιείται επίσης ο όρος "σελίδες κώδικα". Πρόκειται κυρίως για κωδικοποιήσεις χαρακτήρων, όπως χρησιμοποιούνται από συγκεκριμένες εταιρείες, συχνά με μικρές τροποποιήσεις. Για παράδειγμα, η κωδικοσελίδα των Windows 1252 (παλαιότερα γνωστή ως ANSI 1252) είναι μια τροποποιημένη μορφή του ISO-8859-1. Χρησιμοποιούνται κυρίως ως εσωτερικό σύστημα για την αναφορά σε τυποποιημένες και τροποποιημένες κωδικοποιήσεις χαρακτήρων που είναι συγκεκριμένες για τα ίδια συστήματα. Από νωρίς, η κωδικοποίηση χαρακτήρων δεν ήταν τόσο σημαντική, επειδή οι υπολογιστές δεν επικοινωνούσαν μεταξύ τους. Καθώς το διαδίκτυο αυξάνεται σε εξέχουσα θέση και η δικτύωση είναι ένα συνηθισμένο περιστατικό, έχει καταστεί όλο και πιο σημαντική από τις καθημερινές μας ζωές χωρίς να το καταλάβουμε καν.
Πολλοί διαφορετικοί τύποι
(Εικόνα από sarah sosiak)
Υπάρχουν πολλές διαφορετικές κωδικοποιήσεις χαρακτήρων εκεί έξω, και υπάρχουν πολλοί λόγοι γι 'αυτό. Ποια κωδικοποίηση χαρακτήρων επιλέγετε να χρησιμοποιήσετε εξαρτάται από τις ανάγκες σας. Εάν επικοινωνείτε στα ρωσικά, είναι λογικό να χρησιμοποιήσετε μια κωδικοποίηση χαρακτήρων που υποστηρίζει κυριλλικά καλά. Εάν επικοινωνείτε με Κορεάτικα, τότε θα θέλετε κάτι που να εκπροσωπεί το Hangul και το Hanja καλά. Αν είστε μαθηματικός, τότε θέλετε κάτι που αντιπροσωπεύει καλά όλα τα επιστημονικά και μαθηματικά σύμβολα, καθώς και τα ελληνικά και λατινικά glyphs. Αν είσαι καυλιάρης, ίσως επωφεληθείτε από το ανάποδα κειμένου. Και αν θέλετε να προβληθούν όλοι αυτοί οι τύποι εγγράφων από ένα συγκεκριμένο άτομο, θέλετε μια κωδικοποίηση που είναι αρκετά κοινή και εύκολα προσβάσιμη.
Ας ρίξουμε μια ματιά σε μερικές από τις πιο κοινές.
(Απόσπασμα του ASCII πίνακα, Εικόνα από asciitable.com)
- ASCII - Ο αμερικανικός τυποποιημένος κώδικας για την ανταλλαγή πληροφοριών είναι μία από τις παλαιότερες κωδικοποιήσεις χαρακτήρων. Αρχικά σχεδιάστηκε βάσει τηλεγραφικών κωδίκων και εξελίχθηκε με την πάροδο του χρόνου ώστε να συμπεριλάβει περισσότερα σύμβολα και ορισμένους από τους πλέον ξεπερασμένους μη τυπωμένους χαρακτήρες ελέγχου. Είναι ίσως τόσο βασικό όσο μπορείτε να πάρετε από την άποψη των σύγχρονων συστημάτων, καθώς περιορίζεται στο λατινικό αλφάβητο χωρίς τόνους χαρακτήρες. Η κωδικοποίησή του σε 7 bit επιτρέπει μόνο 128 χαρακτήρες, γι 'αυτό και υπάρχουν πολλές ανεπίσημες παραλλαγές σε όλο τον κόσμο.
- ISO-8859 - Η πιο ευρέως χρησιμοποιούμενη ομάδα κωδικοποιήσεων χαρακτήρων της Διεθνούς Οργάνωσης Τυποποίησης είναι ο αριθμός 8859. Κάθε συγκεκριμένη κωδικοποίηση προσδιορίζεται από έναν αριθμό, ο οποίος συχνά είναι προκαθορισμένος από ένα περιγραφικό μόνιτορ, π.χ. ISO-8859-3 (Λατινική-3), ISO-8859-6 (Λατινική / Αραβική). Είναι ένα υπερσύνολο του ASCII, που σημαίνει ότι οι πρώτες 128 τιμές στην κωδικοποίηση είναι οι ίδιες με τις ASCII. Είναι όμως 8-bit και επιτρέπει 256 χαρακτήρες, οπότε δημιουργείται από εκεί και περιλαμβάνει ένα πολύ ευρύτερο φάσμα χαρακτήρων, με κάθε συγκεκριμένη κωδικοποίηση να επικεντρώνεται σε ένα διαφορετικό σύνολο κριτηρίων. Το Latin-1 περιλάμβανε μια δέσμη γραμματοσειρών και συμβόλων με έμφαση, αλλά στη συνέχεια αντικαταστάθηκε με ένα αναθεωρημένο σύνολο που ονομάζεται Latin-9 το οποίο περιλαμβάνει ενημερωμένους χαρακτήρες όπως το σύμβολο του ευρώ.
(Απόσπασμα του Θιβετιανού σεναρίου, Unicode v4, από το unicode.org)
- Unicode - Αυτό το πρότυπο κωδικοποίησης αποσκοπεί στην καθολικότητα. Σήμερα περιλαμβάνει 93 σενάρια που οργανώνονται σε διάφορα μπλοκ, με πολλά ακόμα έργα. Το Unicode λειτουργεί διαφορετικά από άλλα σύνολα χαρακτήρων, επειδή αντί να κωδικοποιεί άμεσα για ένα glyph, κάθε τιμή κατευθύνεται περαιτέρω σε ένα "σημείο κώδικα". Πρόκειται για δεκαεξαδικές τιμές που αντιστοιχούν σε χαρακτήρες αλλά οι ίδιοι οι glyphs παρέχονται με αποσπασμένο τρόπο από το πρόγραμμα , όπως το πρόγραμμα περιήγησης ιστού σας. Αυτά τα σημεία κώδικα απεικονίζονται συνήθως ως εξής: U + 0040 (που μεταφράζεται σε '@'). Οι συγκεκριμένες κωδικοποιήσεις σύμφωνα με το πρότυπο Unicode είναι UTF-8 και UTF-16. Το UTF-8 προσπαθεί να επιτρέψει τη μέγιστη συμβατότητα με το ASCII. Είναι 8-bit, αλλά επιτρέπει όλους τους χαρακτήρες μέσω ενός μηχανισμού υποκατάστασης και πολλαπλά ζεύγη τιμών ανά χαρακτήρα. UTF-16 τάφρους τέλεια συμβατότητα ASCII για μια πληρέστερη συμβατότητα 16-bit με το πρότυπο.
- ISO-10646 - Αυτό δεν είναι μια πραγματική κωδικοποίηση, απλά ένα σύνολο χαρακτήρων Unicode που έχει τυποποιηθεί από το ISO. Είναι κυρίως σημαντικό επειδή είναι το ρεπερτόριο χαρακτήρων που χρησιμοποιείται από το HTML. Λείπουν κάποιες από τις πιο προηγμένες λειτουργίες που παρέχονται από το Unicode, οι οποίες επιτρέπουν την ταξινόμηση και από δεξιά προς τα αριστερά, μαζί με το σενάριο από αριστερά προς δεξιά. Ακόμα, λειτουργεί πολύ καλά για χρήση στο διαδίκτυο, καθώς επιτρέπει τη χρήση μιας μεγάλης ποικιλίας σεναρίων και επιτρέπει στο πρόγραμμα περιήγησης να ερμηνεύει τους χαρακτήρες. Αυτό κάνει τον εντοπισμό κάπως πιο εύκολο.
Τι κωδικοποίηση πρέπει να χρησιμοποιήσω?
Λοιπόν, το ASCII λειτουργεί για τους περισσότερους αγγλικούς ομιλητές, αλλά όχι για πολλά άλλα. Συχνότερα θα δείτε το ISO-8859-1, το οποίο λειτουργεί για τις περισσότερες δυτικοευρωπαϊκές γλώσσες. Οι άλλες εκδόσεις του ISO-8859 λειτουργούν για κυριλλικά, αραβικά, ελληνικά ή άλλα ειδικά σενάρια. Ωστόσο, εάν θέλετε να εμφανίσετε πολλά σενάρια στο ίδιο έγγραφο ή στην ίδια ιστοσελίδα, το UTF-8 επιτρέπει πολύ καλύτερη συμβατότητα. Λειτουργεί επίσης πολύ καλά για άτομα που χρησιμοποιούν σωστά σημεία στίξης, σύμβολα μαθηματικών ή χαρακτήρες εκτός περιπτέρων, όπως τετράγωνα και πλαίσια ελέγχου.
(Πολλαπλές γλώσσες σε ένα έγγραφο, Στιγμιότυπο οθόνης του gujaratsamachar.com)
Ωστόσο, υπάρχουν μειονεκτήματα για κάθε σετ. Το ASCII είναι περιορισμένο στα σημεία στίξης του, οπότε δεν λειτουργεί απίστευτα καλά για τυπογραφικά σωστές επεξεργασίες. Πάντα αντιγράψτε / επικολλήστε το είδος από το Word μόνο για να έχετε κάποιο παράξενο συνδυασμό glyphs; Αυτό είναι το μειονέκτημα του ISO-8859, ή πιο σωστά, της υποτιθέμενης διαλειτουργικότητάς του με κωδικοσελίδες ειδικών λειτουργικών συστημάτων (εξετάζουμε εσάς, τη Microsoft!). Το κύριο μειονέκτημα του UTF-8 είναι η έλλειψη κατάλληλης υποστήριξης στην επεξεργασία και δημοσίευση εφαρμογών. Ένα άλλο πρόβλημα είναι ότι συχνά τα προγράμματα περιήγησης δεν ερμηνεύουν και απλά εμφανίζουν το σήμα παραγγελίας byte ενός κωδικοποιημένου χαρακτήρα UTF-8. Αυτό έχει ως αποτέλεσμα την εμφάνιση ανεπιθύμητων χαρακτήρων. Και βεβαίως, η δήλωση μιας κωδικοποίησης και η χρήση χαρακτήρων από μια άλλη χωρίς να δηλώνεται / αναφέρεται σωστά σε μια ιστοσελίδα καθιστά δύσκολο για τα προγράμματα περιήγησης να τα καταστήσουν σωστά και για τις μηχανές αναζήτησης να τις ευρετηριάσουν κατάλληλα.
Για τα δικά σας έγγραφα, χειρόγραφα και ούτω καθεξής, μπορείτε να χρησιμοποιήσετε ό, τι χρειάζεστε για να ολοκληρώσετε τη δουλειά. Όσον αφορά τον ιστό, όμως, φαίνεται ότι οι περισσότεροι άνθρωποι συμφωνούν να χρησιμοποιήσουν μια έκδοση UTF-8 που δεν χρησιμοποιεί σήμα εντολής byte, αλλά αυτό δεν είναι απολύτως ομόφωνη. Όπως μπορείτε να δείτε, κάθε κωδικοποίηση χαρακτήρων έχει τη δική του χρήση, το πλαίσιο, τις δυνάμεις και τις αδυναμίες. Ως τελικός χρήστης, πιθανότατα δεν θα πρέπει να ασχοληθείτε με αυτό, αλλά τώρα μπορείτε να κάνετε το επιπλέον βήμα προς τα εμπρός εάν το επιλέξετε.