Unicode

Γέννηση και ανάπτυξη του προτύπου

Το πρότυπο Unicode είχε τον ρητό στόχο να ξεπεράσει τους περιορισμούς των παλαιότερων ("παραδοσιακών") προτύπων για κωδικοποίηση χαρακτήρων όπως για παράδειγμα το ISO 8859 πρότυπο, το οποίο χρησιμοποιήθηκε ευρέως σε πολλές χώρες στον κόσμο, αλλά παρουσίαζε προβλήματα ασυμβατότητας μεταξύ των διαφορετικών υλοποιήσεών του.
Γενικά, πολλά παλαιότερα πρότυπα για κωδικοποίηση χαρακτήρων μοιράζονται ένα κοινό πρόβλημα: το ότι επιτρέπουν υποστήριξη μονο δύο αλφαβήτων σε ένα συγκεκριμένο υπολογιστή, συνήθως του Λατινικού και ενός τοπικού, δηλαδή δεν υποστηρίζουν πολλά αλφάβητα στον ίδιο υπολογιστή. Για παράδειγμα, οσον αφορά το πρότυπο ISO 8859, ένας υπολογιστής στην Ελλάδα είναι (συνήθως) ρυθμισμένος να υποστηρίζει μονο το Λατινικό και το Ελληνικό αλφάβητο για κείμενο κωδικοποιημένο κατά ISO 8859. Έτσι, η ανάγνωση κειμένου (κωδικοποιημένου κατά ISO 8859) που περιέχει κάποιο άλλο αλφάβητο (όπως για παράδειγμα Ρώσικο, Εβραϊκό κλπ) θα είναι προβληματική σε Ελληνικό υπολογιστή, αφού οι (Ρωσικοί, Εβραϊκοί κλπ) χαρακτήρες δεν θα εμφανίζονται σωστά. Αυτό συμβαίνει για το πρότυπο ISO 8859 χρησιμοποιεί μόνο 8 bit για να κωδικοποιήσει κάθε χαρακτήρα (δηλαδή, συνολικά μπορούμε να αναπαραστήσουμε μονο 256 διαφορετικούς χαρακτήρες). Οι πρώτες 128 θέσεις δεσμεύονται για το Λατινικό αλφάβητο και μερικά σύμβολα, ενώ οι υπόλοιπες 128 για το τοπικό μη-Λατινογενές αλφάβητο (όποιο και αν είναι αυτό Ελληνικό, Ρώσικο, Εβραϊκό κλπ). Έτσι πρακτικά, οι χαρακτήρες των μη-λατινογενών αλφάβητων "μοιράζονται" τις ίδιες θέσεις με τους χαρακτήρες κάποιου άλλου μη-λατινογενούς αλφαβήτου, και άρα δεν μπορούν να υποστηρίζονται ταυτόχρονα από το σύστημα (δεν είναι δυνατόν μια θέση να αντιστοιχεί σε πάνω από έναν χαρακτήρες). 
Το Unicode μετατρέπει κάθε χαρακτήρα σε ένα κωδικό σημείο ("θέση/τιμή κώδικα"), χρησιμοποιώντας έως και 16 bit ανά χαρακτήρα το οποίο εξασφαλίζει ότι όλοι οι χαρακτήρες μπορούν να υποστηρίζονται από όλα τα υπολογιστικά συστήματα. Το unicode δεν κωδικοποιεί τη μορφοποίηση του κειμένου (στυλ/γραμματοσειρά/μέγεθος κλπ).Το πρότυπο Unicode αφήνει το ανάλογο λογισμικό (πλοηγός Διαδικτύου, επεξεργαστής κειμένου) να εφαρμόσει την οπτική αναπαράσταση (στυλ, μέγεθος, γραμματοσειρά) των χαρακτήρων.
Επίσης στο πρότυπο περιλαμβάνει και σχετικά θέματα όπως ιδιότητες χαρακτήρων, φόρμες κανονικοποίησης κειμένου,κατεύθυνση εμφάνισης(για γλώσσες που διαβάζονται και από τα δεξιά προς τα αριστερά όπως η Αραβική γλώσσα και τα Εβραϊκά.

Διάφορα

Το 1997 Μίχαελ Έβερσον πρότεινε να κωδικοποιηθούν και οι χαρακτήρες της φανταστικής Κλίνγκον γλώσσας στο Επίπεδο 1 του ISO/IEC 10646-2. Αλλά η πρόταση αυτή απορρίφθηκε όπως και η πρόταση για συμπερίληψη γλωσσών του Τόλκιν.

Πρότυπα

Η κοινοπραξία Unicode με έδρα την Καλιφόρνια, αναπτύσσει το πρότυπο Unicode. Οποιαδήποτε οργάνωση ή ιδιώτης μπορεί να γίνει μέλος της εφόσον πληρώσει συνδρομή.
Στα μέλη συμπεριλαμβάνονται σχεδόν όλες τις μεγάλες εταιρείες λογισμικού και υλικού που ενδιαφέρονται σχετικά όπως οι Apple, Microsoft, IBM, Xerox, HP, Adobe Systems και πολλές άλλες.
Η κοινοπραξία δημοσίευσε πρώτη φορά Το πρότυπο Unicode (ISBN 0-321-18578-1) το 1991,και συνεχίζει να αναπτύσσει πρότυπα βασισμένα στην αρχική αυτή εργασία. Η κοινοπραξία Unicode αναπτύχθηκε σε συνδυασμό με τον Διεθνή Οργανισμό Τυποποίησης ISO, και το πρότυπό της μοιράζεται το σύνολο χαρακτήρων της με το πρότυποISO/IEC 10646. 
Το Unicode και το ISO/IEC 10646 είναι ισοδύναμα ως κωδικοποιήσεις χαρακτήρων αλλά το Unicode περιέχει πολύ περισσότερες πληροφορίες για προγραμματιστές που το υλοποιούν, καλύπτοντας σε βάθος θέματα όπως κωδικοποίηση βασισμένη σε μπιτ, Unicode collation αλγόριθμοι, και γραφική απόδοση. Το Unicode απαριθμεί αρκετές ιδιότητες χαρακτήρων, περιλαμβάνοντας και αυτές που χρειάζονται για BiDi υποστήριξη. Τα δυο πρότυπα χρησιμοποιούν μερικώς διαφορετική ορολογία.
Όταν γράφουμε για κωδικά σημεία του Unicode είναι σύνηθες να χρησιμοποιούμε τη μορφή U+xxxx or U+xxxxxx όπου xxxx ή xxxxxx είναι το κωδικό σημείο στο δεκαεξαδικό σύστημα.

Λειτουργικά συστήματα

Παρά τα τεχνικά προβλήματα τους περιορισμούς και την κριτική στη πορεία, το Unicode έχει επικρατήσει ως το κυρίαρχο σχήμα κωδικοποίησης χαρακτήρων.
Τα Windows NT και οι απόγονοί του Windows 2000 και Windows XP κάνουν εκτεταμένη χρήση του σχήματος κωδικοποίησης UTF-16 για εσωτερική αναπαράσταση κειμένου. UNIX λειτουργικά συστήματα όπως  GNU/Linux, Plan 9 από Bell Labs, BSD και  Mac OS X έχουν υιοθετήσει το σχήμα UTF-8, ως τη βάση για την αναπαράσταση  πολυγλωσσικό κείμενο.

Ηλεκτρονική αλληλογραφία

Το πρότυπο MIME ορίζει δύο διαφορετικούς μηχανισμούς για κωδικοποίηση όχι-ASCII χαρακτήρων στα μηνύματα ηλεκτρονικής αλληλογραφίας,e-mails, ανάλογα με το αν οι χαρακτήρες είναι στις επικεφαλίδες του ηλ.μηνύματος όπως πχ η επικεφαλίδα "Θέμα:" ή βρίσκονται στο κυρίος κείμενο του ηλεκτρονικού μηνύματος. Και στις δυο περιπτώσεις, προσδιορίζεται το αρχικό σύνολο χαρακτήρων καθώς και η κωδικοποίηση μεταφοράς. Για ηλεκτρονική αλληλογραφία  με Unicode χαρακτήρες προτείνονται το σχήμα κωδικοποίησης UTF-8 και η κωδικοποίηση μεταφοράς Base64. Οι λεπτομέρειες των δύο μηχανισμών καθορίζονται στο πρότυπο MIME και γενικά είναι κρυμμένοι από τον απλό χρήστη λογισμικού
ηλ. αλληλογραφίας.
Η υιοθέτηση του Unicode στην Ηλεκτρονική αλληλογραφία είναι πολύ αργή. Τα περισσότερα κείμενα στην ανατολική Ασία κωδικοποιούνται άκομα σε τοπικές κωδικοποιήσεις όπως η Shift-JIS, και πολλά δημοφιλή προγράμματα ηλ.αλληλογραφίας ακόμα και αν έχουν κάποια unicode υποστήριξη εντούτοις δεν μπορούν να χειριστούν Unicode δεδομένα σωστά. Η κατάσταση αυτή δεν προβλέπεται να αλλάξει το προσεχές μέλλον.

Διαδίκτυο

Οι καινούργιοι πλοηγοί διαδικτύου μπορούν και απεικονίζουν σωστά ιστοσελίδες με Unicode χαρακτήρες εφόσον έχει εγκατασταθεί η ανάλογη  γραμματοσειρά.
Παρόλο που συντακτικοί κανόνες μπορεί να επηρεάζουν τη σειρά με την οποία οι χαρακτήρες επιτρέπεται να εμφανίζονται και η γλώσσα HTML 4.0 αλλά και η XML 1.0 εξ ορισμού υποστηρίζουν έγγραφα που αποτελούνται από χαρακτήρες από όλο το εύρος των κωδικών σημείων του Unicode εξαιρουμένων μόνο κάποιων χαρακτήρων ελέγχου  τα μόνιμα μη-διαθέσιμα κωδικά σημεία D800-DFFF, οποιοδήποτε κωδικό σημείο που τελειώνει σε FFFE or FFFF και οποιοδήποτε κωδικό σημείο πάνω από 10FFFF. Αυτοί οι χαρακτήρες παρουσιάζονται είτε απευθείας ως μπάιτς σύμφωνα με την κωδικοποίηση του εγγράφου,εφόσον υποστηρίζονται από την κωδικοποίηση,ή μπορούν να γραφτούν ως αριθμητικές αναφορές χαρακτήρων βασισμένες στο κωδικό σημείο του Unicode χαρακτήρα, εφόσον η κωδικοποίηση που χρησιμοποιεί το έγγραφο επιτρέπει τα ψηφία και τα σύμβολα που χρειάζονται  για να γράψουμε τις αναφορές (κάτι που συμβαίνει με όλες τις κωδικοποιήσεις που έχουν υιοθετηθεί στο διαδίκτυο)
Για παράδειγμα οι αναφορές :
Δ Й ק م ๗ あ 叶 葉 냻 (ή η ίδια τιμή στο δεκαεξαδικό με πρόθεμα &#x ) εμφανίζεται στον πλοηγό σου ως  Δ, Й, ק, م, ๗, あ, 叶, 葉 και 냻—εφόσον έχεις την κατάλληλη γραμματοσειρά, αυτά τα σύμβολα φαίνονται σαν Greek capital letter "Delta", Cyrillic capital letter "Short I", Arabic letter "Meem", Hebrew letter "Qof", Thai numeral 7, Japanese Hiragana "A", simplified Chinese "Leaf", traditional Chinese "Leaf", and Korean Hangul syllable "Nyaelh", αντίστοιχα.

Γραμματοσειρές

Ελεύθερες και εμπορεύσιμες γραμματοσειρές που βασίζονται στο Unicode πρότυπο είναι κοινές, με πρώτες τις TrueType και τώρα τις OpenType γραμματοσειρές που υποστηρίζουν και οι δύο Unicode απεικονίζοντας κωδικά σημεία σε συγκεκριμένες εμφανίσεις χαρακτήρων.
Υπάρχουν χιλίαδες γραμματοσειρές στην αγορά,αλλά λιγότερες από δώδεκα προσπαθούν να υποστηρίξουν την πλειοψηφία του συνόλου χαρακτήρων 
του προτύπου Unicode. 
Αντίθετα οι βασισμένες στο Unicode γραμματοσειρές συνήθως υποστηρίζουν μόνο βασικό ASCII και κάποια συγκεκριμένα αλφάβητα. Αυτό γίνεται κυρίως για λόγους οικονομίας των δημιουργών γραμματοσειρών και απόδοσης των προγραμμάτων που μπορεί να γονατίσουν καθώς η απόδοση γραμματοσειρών είναι μια διαδικασία που καταναλώνει πολλούς πόρους ενός υπολογιστή.
Χαρακτήρες Unicode που δεν μπορούν να αποδωθούν γραφικά απεικονίζονται με ένα λευκό τετράγωνο.