Σελίδα 1 από 1

Τι πιστεύετε για τις κωδικοποιήσεις;

ΔημοσίευσηΔημοσιεύτηκε: 09 Δεκ 2011, 00:59
από lucinos
Κατ αρχήν για όσους θέλουν να έχουν μια γρήγορη εικόνα για το θέμα:
ASCII: εφτάμπιτη κωδικοποίηση. Αυτό σημαίνει ότι έχουμε έναν χώρο 2^7=128 χαρακτήρων. Περιλαμβάνει πολλούς ειδικούς χαρακτήρες, σύμβολα όπως οι παρενθέσεις και οι πράξεις, τούς αραβικούς αριθμούς και τα πεζά και κεφαλαία λατινικά γράμματα.

Το γεγονός ότι είναι εφτάμπιτος σε έναν κόσμο που η βάση είναι πολλαπλάσια τών οκτώ μπιτ είναι ευτύχημα γιατί επιτρέπει την επεκτασιμότητά του με φυσικό τρόπο. Συγκεκριμένα αν το επιπλέον μπιτ είναι 0 τότε έχουμε τον κώδικα ASCII αν είναι 1 τότε έχουμε 128 επιπλέον συνδυασμούς.

ISO/IEC 8859
Ο πιο προφανής τρόπος επέκτασης για να βολέψεις επιπλέον χαρακτήρες. Το κακό είναι ότι είσαι περιορισμένος σε 128 μόνο επιπλέον χαρακτήρες πράγμα ιδιαίτερα περιοριστικό. Για να βολευτούν περισσότερες γλώσσες στην πραγματικότητα δεν έχουμε ένα πρότυπο αλλά 15. Από αυτά εμάς μάς νοιάζουν πρακτικά δύο:
Latin-1 ή ISO-8859-1: Βολεύει τις δυτικοευρωπαϊκές γλώσσες. Μάς νοιάζει γιατί είναι το συνηθέστερο που (κακώς) χρησιμοποιείται
Latin/Greek ή ISO-8859-7: Μάς νοιάζει γιατί είναι για το ελληνικό αλφάβητο. Βεβαίως δεν περιλαμβάνει για παράδειγμα πολυτονικό.

Αυτός ο πληθωρισμός από ISO φυσικά δημιουργεί τεράστιο πρόβλημα. Για κερασάκι στην τούρτα έχουμε και επιπλέον κωδικοποιήσεις όπως η Windows-1253 που διαφέρει σε λίγα σημεία όπως η θέση τού «Ά» (κεφαλαίο άλφα με τόνο)

Η προσπάθεια να δραπετεύσουμε από τον περιορισμό αυτόν είναι το unicode. Δυστυχώς δεν έχουμε ένα unicode αλλά πολλά...

Η πρώτη ιδέα είναι να χρησιμοποιήσουμε 16 μπιτ αντί 8 μπιτ, οπότε θεωρητικά έχουμε 2^16=65536 χαρακτήρες. Στην πράξη δεν έχουμε αρκετούς χαρακτήρες για να καλύψουμε τις σύγχρονες ανάγκες. Ταυτοχρόνως το σύστημα δεν είναι συμβατό με τον ASCII. Η αίσθησή μου είναι ότι όλος ο σχεδιασμός είναι λάθος αλλά αρκετοί ήταν αρκετά επίμονοι και δουλευταράδες για να φροντίσουν να το επεκτείνουν. Οι δύο κυριότερες εκδοχές είναι ίσως το UTF-32 και το UTF-16
UTF-32: Χρησιμοποιούνται σταθερά 32 μπιτ. Αυτό μπορεί να ακούγεται απλό αλλά δημιουργεί περιπλοκές. Διαφωτιστικό είναι το άρθρο τής βικιπαίδειας. Ως συνήθως στα διαφωτιστικά άρθρα τής βικιπαίδειας είναι τοποθετημένη μια δαμόκλειος σπάθη. Εκτός από τα εγγενή μειονεκτήματά του η μη υιοθέτησή του από την Microsoft, το σκότωσε. Τα unix-οειδή όπως θα δούμε βρήκαν μια πολύ καλύτερη λύση. Επίσης το HTML5 αποφάσισε (σωστά κατά την γνώμη μου) να μην το στηρίξει. Οπότε μιλάμε για ένα νεκρό σύστημα.
UTF-16: Χρησιμοποιεί 16άδες μπιτ αλλά μπορεί να φτιάχνει χαρακτήρες και με δύο 16άδες μπιτ. Οπότε μπορεί να υποστηρίξει 1112064 χαρακτήρες, έναν ικανοποιητικό πλήθος. Όπως και το UTF-32 δεν είναι συμβατό με τον ASCII ενώ είναι φυσική επέκταση τού UCS-2 (χρησιμοποιούσε σταθερά 16μπιτ). Σε σχέση με το UTF-32 αντικειμενικά υπερτερεί μόνο από την άποψη ότι ένας μεγάλος αριθμός συμβόλων αρκείται στα 16 μπιτ αντί να απαιτεί 32 μπιτ. Προσωπικά για το κακό (κατά την γνώμη μου) ISO-8859 μπορώ να βρω καλές δικαιολογίες. Το επίσης κακό UTF-32 μπορώ κάπως να το δικαιολογήσω. Το UTF-16 δυσκολεύομαι πολύ να το δικαιολογήσω. Τόσο πολύ σπανίζουν οι λογικοί άνθρωποι σε αυτόν τον κόσμο;

UTF-8: Το unicode όπως θα έπρεπε εξ αρχής να σχεδιαστεί. Απολύτως συμβατό με ASCII. Πολύ απλούστερο στην πράξη. Αποτελείται από 8μπιτα κομμάτια και ένας χαρακτήρας θεωρητικά μπορεί να πιάνει από 1 μπάϊτ (όταν ανήκει στον ASCII) ως και 6 μπάϊτ (με 2^31 τέτοιους χαρακτήρες). Έτσι μπορεί να υποστηρίζει έναν πληθυσμό χαρακτήρων ανάλογο με το UTF-32.
Μερικά σημεία που κάποιος θα μπορούσε να κάνει ενστάσεις:
Το ISO-8859 και UTF-32 έχουν σταθερό μήκος/χαρακτήρα: Στην πράξη αυτό είναι πολύ λιγότερο χρήσιμο από όσο ακούγεται. Στις ελάχιστες πραγματικά χρήσιμες περιπτώσεις υπάρχουν έτσι και αλλιώς πολύ σοβαροί λόγοι να μείνει κάποιος πιστός στο ASCII και να μην χρησιμοποιήσει unicode, ούτε επιπλέον χαρακτήρες.
Το ISO-8859-7 αντιμετωπίζει ισότιμα τα λατινικά με τα ελληνικά: Καθόλου. Αν ήταν το μόνο πρότυπο θα μπορούσε ίσως να υποστηριχθεί κάτι τέτοιο, αλλά καθώς υπάρχουν πολλά και όλα έχουν τα ίδια λατινικά αλλά διαφέρουν στούς άλλους χαρακτήρες, τα ελληνικά είναι σε πολύ ισχυρότερη θέση στο UTF-8. Περισσότερο ισότιμη είναι η αντιμετώπιση στο UTF-16 αλλά και εκεί δεν υπάρχει κανένα αντικειμενικό όφελος για τα ελληνικά. Είναι περισσότερο η δικαιοσύνη τού είδους «να ψοφήσει η κατσίκα τού γείτονα».
Το UTF-16 επιτρέπει σε περισσότερους χαρακτήρες να αναπαρασταθούν μόνο με 16μπιτ, και είναι έτσι οικονομικότερο για τις σχετικές γλώσσες (τής άπω ανατολής): Μόνο για το καθαρό κείμενο σε μια τέτοια γλώσσα ισχύει κάτι τέτοιο. Στην πράξη η συχνή χρήση ASCII χαρακτήρων κάνει το UTF-8 οικονομικότερο, επιπλέον διαφωνώ με αυτό το είδος οικονομίας (δείτε παρακάτω)
Το ISO-8859 είναι πολύ οικονομικότερο. Στα ελληνικά χρειαζόμαστε διπλάσιο όγκο για το UTF-8: Το ISO-8859-7 δεν είναι unicode με όττι μειονέκτημα σημαίνει αυτό και με το UTF-16 φυσικά δεν υπάρχει αντικειμενικό όφελος. Σε κάθε περίπτωση όμως αυτός είναι τελείως άντι-unix τρόπος σκέψης. Η λογική τού unix είναι να απομονώνουμε ένα πρόβλημα στα απλά του μέρη ώστε να εφαρμόσουμε την καλύτερη δυνατή λύση για κάθε μέρος του ξεχωριστά. Έτσι μπορούμε να χρησιμοποιήσουμε την καλύτερη κωδικοποίηση που είναι η UTF-8 και αν θέλουμε οικονομία σε όγκο απλούστατα να συμπιέσουμε το κείμενο, κάτι που θα προσφέρει έτσι και αλλιώς πολύ μεγαλύτερη οικονομία από οποιοδήποτε ISO-8859. Αυτή είναι η καλύτερη λύση από κάθε άποψη.

Το UTF-8 είναι σήμερα η κυρίαρχη κωδικοποίηση στο διαδίκτυο και στα unix-οειδή, και όχι άδικα κατά την γνώμη μου. Από κάθε πραγματικά αντικειμενική άποψη υπερτερεί. Η πραγματική μου απορία είναι πώς δεν έχει κυριαρχήσει πλήρως ακόμα και γιατί η ηλεκτρονική αλληλογραφία άργησε τόσο πολύ να το υποστηρίξει. Το λογικό θα ήταν να υιοθετηθεί πολύ πιο συνειδητά και να αφήσουμε επιτέλους τα ISO-8859 και UTF-16.

Re: Τι πιστεύετε για τις κωδικοποιήσεις;

ΔημοσίευσηΔημοσιεύτηκε: 10 Δεκ 2011, 00:03
από matthew
:clap: OK! Καλή δουλειά! :thumbup: Από αυτά ήξερα ονομαστικά τα ISO-8859-7 & UTF-8, για την προβολή υποτίτλων στους players. :roll:
Μπορεί να μπεί & σαν οδηγός! :geek:

Re: Τι πιστεύετε για τις κωδικοποιήσεις;

ΔημοσίευσηΔημοσιεύτηκε: 10 Δεκ 2011, 00:55
από the_eye

Το μετέφερα στου οδηγούς.


Re: Τι πιστεύετε για τις κωδικοποιήσεις;

ΔημοσίευσηΔημοσιεύτηκε: 10 Δεκ 2011, 12:45
από lucinos
Η αλήθεια είναι ότι το έγραψα για να ακούσω και μια δεύτερη γνώμη και όχι σαν οδηγό. Σαν οδηγός το ρεζουμέ είναι μόνο ένα πράγμα

-Χρησιμοποιείτε αποκλειστικά UTF-8

Re: Τι πιστεύετε για τις κωδικοποιήσεις;

ΔημοσίευσηΔημοσιεύτηκε: 10 Δεκ 2011, 14:51
από simosx
lucinos έγραψε:Η αλήθεια είναι ότι το έγραψα για να ακούσω και μια δεύτερη γνώμη και όχι σαν οδηγό. Σαν οδηγός το ρεζουμέ είναι μόνο ένα πράγμα

-Χρησιμοποιείτε αποκλειστικά UTF-8


Για έγγραφα στην ελληνική γλώσσα αντιμετωπίζουμε πρόβλημα με αυτά που είναι στην προηγούμενη κωδικοποίηση (iso-8859-7).
Θέλουμε τρόπο ώστε εύκολα τα παλιά κείμενα να είναι χρησιμοποιήσιμα, όσο το δυνατόν καλύτερα.

Έτσι,
1. στο gtk+ υπάρχει επιλογή όταν το GNOME δεν αναγνωρίζει την κωδικοποίηση να θεωρεί ότι ήταν iso-8859-1 και να την μετατρέψει σε utf-8.
Θέλουμε δυνατότητα ώστε για το ελληνικό περιβάλλον να θεωρεί ότι η κωδικοποίηση «ήταν» iso-8859-7. Μιλάμε για 1-2 γραμμές κώδικα στο gtk+,
και θα επιλύσει τα προβλήματα με τους υπότιτλους, κτλ.
2. έχουμε παλιά PDF με iso-8859-7, όπου με το evince δε μπορούμε να κάνουμε αναζήτηση.
Είναι τόσο σοβαρό το θέμα όπου έχουμε το πρόβλημα στα περισσότερα βιβλία του παιδαγωγικού ινστιτούτου,
http://digitalschool.minedu.gov.gr/modu ... aculte.php
στα παλιά ΦΕΚ.
Εδώ έχει νόημα να γίνει βελτίωση στο Evince ή συγκεκριμένα στη βιβλιοθήκη poppler. Και πάλι, μιλάμε για μερικές γραμμές κώδικα.
Είναι πιθανό όμως η αλλαγή στο gtk+ να μπορεί να διορθώσει αυτόματα και το ζήτημα με τα PDF.