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

...το μέρος για να ξεκινήσετε!

Συντονιστής: adem1

Κανόνες Δ. Συζήτησης
Παρακαλώ να επιλέξετε, με προσοχή, την άδεια που θέλετε να έχουν οι οδηγοί που συγγράφετε.
Πληροφορίες για τις άδειες μπορείτε να βρείτε εδώ.
Άμα επιθυμείτε κάποια άλλη άδεια επικοινωνήστε με κάποιο Διαχειριστή είτε Συντονιστή.

Σημαντικό είναι να χρησιμοποιήσετε την υπηρεσία http://imagebin.ubuntu-gr.org για τις εικόνες.

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

Δημοσίευσηαπό lucinos » 09 Δεκ 2011, 00:59

Κατ αρχήν για όσους θέλουν να έχουν μια γρήγορη εικόνα για το θέμα:
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.
Spoiler: show
Γνώσεις → Linux: Μέτριος ┃ Προγραμματισμός: Μέτριος ┃ Αγγλικά: Μέτριος
Λειτουργικό → Ubuntu 11.04 natty 64-bit (el_GR.UTF-8)
Προδιαγραφές → CPU: 4x Intel Core i5 CPU 750 2.67GHz ‖ RAM 3953 MiB ‖ ASRock P55DE3
Κάρτες γραφικών: nVidia G92 [GeForce GTS 250] ⎨10de:0615⎬ (rev a2)
Δίκτυα: eth0: Realtek RTL8111/8168B PCI Express Gigabit Ethernet controller ⎨10ec:8168⎬ (rev 03)
Άβαταρ μέλους
lucinos
daemonTUX
daemonTUX
 
Δημοσιεύσεις: 828
Εγγραφή: 12 Δεκ 2010, 22:04
Εκτύπωση

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

Δημοσίευσηαπό matthew » 10 Δεκ 2011, 00:03

:clap: OK! Καλή δουλειά! :thumbup: Από αυτά ήξερα ονομαστικά τα ISO-8859-7 & UTF-8, για την προβολή υποτίτλων στους players. :roll:
Μπορεί να μπεί & σαν οδηγός! :geek:
Γνώσεις Linux: Βασικές ┃ Προγραμματισμός: Όχι ┃ Αγγλικά: Καλά
Ubuntu Mate 20.04 64-bit σε Fujitsu Amilo Xi3670 & HP Compaq 6910p
Άβαταρ μέλους
matthew
saintTUX
saintTUX
 
Δημοσιεύσεις: 1319
Εγγραφή: 25 Αύγ 2008, 01:35
Εκτύπωση

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

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

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

Όσο λιγότερο κλειστό λογισμικό έχεις, τόσα λιγότερα προβλήματα.
1 Γνώσεις ⇛ Linux: Καλό ┃ Προγραμματισμός: Ναι PHP, MySQL ┃ Αγγλικά: Καλά
2 Ubuntu 22.04 Jammy Jellyfish 5.15.0-58-generic 64bit (el_GR.UTF-8, ubuntu:GNOME ubuntu)
3 Intel Core i3-6100 CPU @ 3.70GHz ‖ RAM 7836 MiB ‖ Gigabyte B150M-HD3 DDR3-CF - Gigabyte B150M-HD3 DDR3
4 Intel HD Graphics 530 [8086:1912] {i915}
5 enp1s0: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller [10ec:8168] (rev 15)
Οδηγοί Ubuntu Βίντεο Οδηγοί
Άβαταρ μέλους
the_eye
Διαχειριστής
Διαχειριστής
 
Δημοσιεύσεις: 11671
Εγγραφή: 16 Μαρ 2010, 17:19
Launchpad: ntoulasd
IRC: the_eye_
Εκτύπωση

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

Δημοσίευσηαπό lucinos » 10 Δεκ 2011, 12:45

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

-Χρησιμοποιείτε αποκλειστικά UTF-8
Spoiler: show
Γνώσεις → Linux: Μέτριος ┃ Προγραμματισμός: Μέτριος ┃ Αγγλικά: Μέτριος
Λειτουργικό → Ubuntu 11.04 natty 64-bit (el_GR.UTF-8)
Προδιαγραφές → CPU: 4x Intel Core i5 CPU 750 2.67GHz ‖ RAM 3953 MiB ‖ ASRock P55DE3
Κάρτες γραφικών: nVidia G92 [GeForce GTS 250] ⎨10de:0615⎬ (rev a2)
Δίκτυα: eth0: Realtek RTL8111/8168B PCI Express Gigabit Ethernet controller ⎨10ec:8168⎬ (rev 03)
Άβαταρ μέλους
lucinos
daemonTUX
daemonTUX
 
Δημοσιεύσεις: 828
Εγγραφή: 12 Δεκ 2010, 22:04
Εκτύπωση

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

Δημοσίευσηαπό simosx » 10 Δεκ 2011, 14:51

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.
προσωπικό ιστολόγιο ϗ πλανήτης Ubuntu-gr
Συμβάλετε και εσείς στο ελληνικό βιβλίο Ubuntu!
1 Γνώσεις Linux: Πολύ καλό ┃ Προγραμματισμού: Πολύ καλό ┃ Αγγλικών: Πολύ καλό
2 Ubuntu 13.10 saucy 3.11.0-031100rc1-generic 64bit (el_GR.UTF-8, Unity ubuntu)
3 AMD E-450 APU with Radeon HD Graphics ‖ RAM 3555 MiB ‖ Sony Corporation VAIO
4 AMD nee ATI Wrestler [Radeon HD 6320] [1002:9806] {fglrx_pci}
5 eth0: Atheros Inc. AR8151 v2.0 Gigabit Ethernet [1969:1083] (rev c0) ⋮ wlan0: Atheros Inc. AR9285 [168c:002b] (rev 01)
Φτιάξτε και εσείς τη δική σας υπογραφή (παραπάνω κείμενο) αυτόματα με κλικ εδώ!
simosx
Επίτιμο μέλος
Επίτιμο μέλος
 
Δημοσιεύσεις: 10334
Εγγραφή: 11 Μάιος 2008, 18:52
Launchpad: simosx
IRC: simosx
Εκτύπωση


Επιστροφή στο Οδηγοί - How to - Tutorials