Ά και άνω τελεία

Ερωτήσεις και απαντήσεις σχετικές με την HTML, XHTML και την κατασκευή σελίδων για το Web.

Συντονιστές: WebDev Moderators, Super-Moderators

Απάντηση
Άβαταρ μέλους
skeftomilos
Script Master
Δημοσιεύσεις: 2888
Εγγραφή: 07 Ιαν 2005 07:22
Τοποθεσία: Αθήνα

Ά και άνω τελεία

Δημοσίευση από skeftomilos » 24 Νοέμ 2005 17:22

Τις προάλλες είχα μια ενδιαφέρουσα αλληλογραφία με τον alkisg σχετικά με charsets και encodings. Αν αυτά τα θέματα σας μπερδεύουν το ίδιο που μπερδεύουν και μένα, μπορεί ο παρακάτω διάλογος να σας διαφωτίσει λίγο. Αν πάλι ανήκετε στους λίγους και εκλεκτούς που μπορούν να τα παίζουν στα δάχτυλα, τότε πάλι θα είναι χρήσιμο να διαβάσετε το διάλογο για να διορθώσετε τα σφάλματα και να συμπληρώσετε τα κενά. Thanx! :)

skeftomilos έγραψε:Λοιπόν Άλκη ανακάλυψα κάτι που φαντάζομαι ότι δε θα το ξέρεις ... κι ας σε λένε Άλκη!

Το πρόβλημα iso-8859-7 και γράμματος Ά το ξέρεις. Τη λύση Ά την ξέρεις. Τη λύση Εικόνα την ήξερες; Ο χαρακτήρας Εικόνα εμφανίζεται ως Ά μόνο με το iso-8859-7. Η πληκτρολόγησή του γίνεται με Alt+0182. Αν δε με πιστεύεις δες το demo. :-)
alkisg έγραψε:Σε windows-1253 το Εικόνα βρίσκεται στη θέση 182. Σε iso-8859-7 το Εικόνα βρίσκεται στη θέση 162. Στην ίδια θέση βρίσκεται και το Ά στην windows-1253.

Εσύ αυτό που έκανες στο demo ήταν απλά να γράψεις ένα Ά (#162) στην windows-1253. Δεν βλέπω κάτι περίεργο.

skeftomilos έγραψε:Ο χαρακτήρας Εικόνα εμφανίζεται ως Ά μόνο με το iso-8859-7


Ακριβώς το αντίθετο, δηλαδή αν γράψεις Εικόνα σε iso-8859-7 και προβάλλεις την σελίδα με windows 1253 τότε εμφανίζεται σαν Ά.

Τσέκαρέ το λίγο και αν κάτι δεν κατάλαβα καλά πες το μου...
skeftomilos έγραψε:Με μπέρδεψες! Το charset windows-1253 δεν έχει πρόβλημα με το τονισμένο άλφα. Το μόνο πρόβλημά του είναι το κατά πόσο υποστηρίζεται από μη Windows συστήματα. Πιθανότατα υποστηρίζεται παντού, αλλά κι αν ακόμα πρακτικά είναι το ίδιο, θεωρητικά iso-8859-7 is the way to go, isn't it? :-)

Αν γράψεις ένα Ά (#162) με iso-8859-7, θα πάρεις ένα όμορφο αγγλικό ερωτηματικό στον browser. Ενώ αν γράψεις ένα Εικόνα (#182) παίρνεις το επιθυμητό άλφα τονισμένο. Το ανακάλυψα κοιτώντας τον πηγαίο κώδικα του FreeStuff, ψάχνοντας να δω πώς στο διάβολο εμφανίζεται σωστά το Ά παρόλο που έχει iso-8859-7. :-)
alkisg έγραψε:Κάτσε αν κατάλαβα καλά, δεν έχεις καταλάβει τι παίζεται με το άλφα!

Κανένα από τα 2 charsets δεν έχει «πρόβλημα». Το τονισμένο άλφα υπάρχει και στα δύο. Το πρόβλημα είναι ότι είναι σε διαφορετικές θέσεις, στο 1253 είναι στην #182 και στο 8859-7 είναι στην θέση #162.

Και στις δύο κωδικοσελίδες μπορείς να γράψεις κανονικά το Ά. Είτε θα πρέπει να το υποστηρίζει ο editor (π.χ. vstudio, frontpage, dreamweaver) – ανεξάρτητα από το πληκτρολόγιο που χρησιμοποιείς στα windows, είτε αν θες μπορείς να βαράς alt+κάμποσο. Δεν χρειάζεται όμως, οι περισσότεροι σε αφήνουν να γράφεις κανονικά Ά και το μεταφράζουν σε #182 ή #162 ανάλογα με το charset της σελίδας.

Το ουσιαστικό πρόβλημα είναι ότι αν γράψεις μια σελίδα σε iso και την δεις σε 1253 φαίνεται το Εικόνα, και αν γράψεις μια σελίδα σε 1253 και την δεις σε iso φαίνεται τετραγωνάκι.

Το πρόβλημα δηλαδή υπάρχει, το γλιτώνεις μόνο με Ά ή με utfxx.

Right?
skeftomilos έγραψε:Καλά, μη νομίζεις ότι επικρατεί πλήρης διαύγεια στο μυαλό μου σχετικά με αυτά τα charsets-encodings!

alkisg έγραψε:Κάτσε αν κατάλαβα καλά, δεν έχεις καταλάβει τι παίζεται με το άλφα!

Κανένα από τα 2 charsets δεν έχει «πρόβλημα». Το τονισμένο άλφα υπάρχει και στα δύο. Το πρόβλημα είναι ότι είναι σε διαφορετικές θέσεις, στο 1253 είναι στην #182 και στο 8859-7 είναι στην θέση #162.


Το θέμα είναι ότι γράφοντας ρητά πιο charset θέλεις - το iso-8859-7 - και πιο γράμμα θέλεις - το Ά - δεν εμφανίζεται αυτό που θέλεις. Αν κάνεις το ίδιο με το charset windows-1253 παίρνεις αυτό που θέλεις. Οπότε αν δεν είναι σφάλμα του iso-8859-7 ποιανού είναι; Φταίνε μήπως οι browsers;

alkisg έγραψε:Και στις δύο κωδικοσελίδες μπορείς να γράψεις κανονικά το Ά. Είτε θα πρέπει να το υποστηρίζει ο editor (π.χ. vstudio, frontpage, dreamweaver) – ανεξάρτητα από το πληκτρολόγιο που χρησιμοποιείς στα windows, είτε αν θες μπορείς να βαράς alt+κάμποσο. Δεν χρειάζεται όμως, οι περισσότεροι σε αφήνουν να γράφεις κανονικά Ά και το μεταφράζουν σε #182 ή #162 ανάλογα με το charset της σελίδας.


Σύμφωνοι αλλά τα δεδομένα δεν γράφονται πάντα με το χέρι, έρχονται και από τις databases! Οπότε τι κάνουμε, αποθηκεύουμε στη database την entity Ά ή το αναβάλουμε για τη στιγμή που θα το στείλουμε στον browser; Το σίγουρο είναι ότι το FreeStuff έχει iso-8859-7 και δε στέλνει Ά αλλά Εικόνα. Το τι έχει αποθηκευμένο στη βάση του μου είναι άγνωστο.

alkisg έγραψε:Το ουσιαστικό πρόβλημα είναι ότι αν γράψεις μια σελίδα σε iso και την δεις σε 1253 φαίνεται το Εικόνα, και αν γράψεις μια σελίδα σε 1253 και την δεις σε iso φαίνεται τετραγωνάκι.


Νομίζω ότι την απόφαση για το charset δεν την παίρνει ο browser από μόνος του αλλά ακολουθεί τις υποδείξεις της σελίδας. Συγκεκριμένα κοιτάει την οδηγία <meta http-equiv="content-type" content="text/html; charset=iso-8859-7"> ή τον αντίστοιχο HTTP header. Άρα συνδυάζοντας iso-8859-7 και Εικόνα, δε βλέπω να υπάρχει πια πρόβλημα (IMHO).
____________________________________________________________

Μία απορία ενός αδαούς:

Η ελληνική άνω τελεία εμφανίζεται στον browser με την &#903; entity. Ξέρεις αν υπάρχει τρόπος να παραχθεί άμεσα με το πληκτρολόγιο;
____________________________________________________________

Και ένα ενδιαφέρον quiz. Υπάρχει κάποιο πρόβλημα με το παρακάτω url;

<a href="order.php?id=5&pound=300&copy=yes">Problem?</a>
alkisg έγραψε:
skeftomilos έγραψε:Το θέμα είναι ότι γράφοντας ρητά πιο charset θέλεις - το iso-8859-7 - και πιο γράμμα θέλεις - το Ά - δεν εμφανίζεται αυτό που θέλεις. Αν κάνεις το ίδιο με το charset windows-1253 παίρνεις αυτό που θέλεις. Οπότε αν δεν είναι σφάλμα του iso-8859-7 ποιανού είναι; Φταίνε μήπως οι browsers;


Δεν έχεις δίκιο. Φυσικά αν γράφεις στο notepad το Ά θα είναι το #182, αφού γράφεις στην κωδικοσελίδα των windows. Θες άλλο editor, που να υποστηρίζει iso. Π.χ. στο linux υπάρχει το ακριβώς ανάποδο πρόβλημα, δηλαδή γράφοντας στον vi το Ά είναι το #162, αφού έχει iso κωδικοσελίδα. Με άλλα λόγια, φταίει το notepad, χρησιμοποίησε κάτι άλλο (frontpage, dreamweaver, ultraedit κτλ).

skeftomilos έγραψε:Σύμφωνοι αλλά τα δεδομένα δεν γράφονται πάντα με το χέρι, έρχονται και από τις databases! Οπότε τι κάνουμε, αποθηκεύουμε στη database την entity &#902; ή το αναβάλουμε για τη στιγμή που θα το στείλουμε στον browser; Το σίγουρο είναι ότι το FreeStuff έχει iso-8859-7 και δε στέλνει &#902; αλλά Εικόνα. Το τι έχει αποθηκευμένο στη βάση του μου είναι άγνωστο.


Στις databases το σωστό είναι να γράφουμε UTF-8 ή 16. Τώρα αν η db είναι σε 1253 και πας να τα δείξεις σε iso θες replace.

skeftomilos έγραψε:Νομίζω ότι την απόφαση για το charset δεν την παίρνει ο browser από μόνος του αλλά ακολουθεί τις υποδείξεις της σελίδας. Συγκεκριμένα κοιτάει την οδηγία <meta http-equiv="content-type" content="text/html; charset=iso-8859-7"> ή τον αντίστοιχο HTTP header. Άρα συνδυάζοντας iso-8859-7 και Εικόνα, δε βλέπω να υπάρχει πια πρόβλημα (IMHO).


Αυτό είναι το πρόβλημα. Δεν υπάρχει πάντα, σε νορμάλ συνθήκες είναι όλα ΟΚ. Στις προβληματικές:

Μπορεί π.χ. ο χρήστης να έχει καρφωμένο charset, οπότε να του στέλνεις content-type=iso και ο χρήστης να το βλέπει ντε και καλά με 1253. Εκεί λοιπόν θα φανεί λάθος αν δεν το έχεις &#902;. Μπορεί αυτός που γράφει τη σελίδα να ξεχάσει να βάλει content-type.

Πάντως είτε με αυτόματο είτε με καρφωμένο charset, όταν λες στον χρήστη να συμπληρώσει το όνομά του σε ένα textbox, ο browser το στέλνει με το επιλεγμένο charset. Δηλαδή μπορώ να σου βρω σενάριο (καρφωμένο charset) όπου εσύ θα έχεις iso σελίδα και εγώ θα συμπληρώσω κανονικά το όνομά μου και τελικά θα πάει στη βάση λάθος και μετά θα βλέπουν ΟΛΟΙ το όνομά μου λάθος.

skeftomilos έγραψε:Η ελληνική άνω τελεία εμφανίζεται στον browser με την &#903; entity. Ξέρεις αν υπάρχει τρόπος να παραχθεί άμεσα με το πληκτρολόγιο;


Γενικά τσου, στο Word έχει μια συντόμευση με ctrl+alt+κάτι που δεν θυμάμαι (καλά εκεί ορίζεις και τη δικιά σου συντόμευση αν θες).

Επομένως alt+xxx...
skeftomilos έγραψε:Θενξ, νομίζω ότι με κάλυψες. Βλέπω ότι τα κατέχεις καλά αυτά τα θέματα. :-) Οπότε σύμφωνα με όλα αυτά καταλήγουμε ότι η επιλογή του FreeStuff να χρησιμοποιεί το χαρακτήρα #182 για Ά είναι αμφίβολης αξίας.

alkisg έγραψε:(Για την άνω τελεία) Γενικά τσου, στο Word έχει μια συντόμευση με ctrl+alt+κάτι που δεν θυμάμαι (καλά εκεί ορίζεις και τη δικιά σου συντόμευση αν θες).

Επομένως alt+xxx...


Μήπως ξέρεις πιο Alt+xxx είναι; Γιατί δεν το βρήκα πουθενά γραμμένο, ούτε οι τυχαίες προσπάθειές μου απέδωσαν καρπούς. :-(
____________________________________________________________

Το quiz το βρήκες φαντάζομαι. Οι browsers ερμηνεύουν τις ακολουθίες &pound και &copy ως entities! Είναι αρκετά σημαντικό πρόβλημα, για το οποίο έχει ενημερώσει τους προγραμματιστές και το W3C.
alkisg έγραψε:ΟΚ, σαν συμπέρασμα βγαίνει ότι προτιμάμε τα παρακάτω με την παρακάτω σειρά:

1. Το UTF8, αλλά με σχεδόν διπλάσιο μέγεθος σελίδας (2 byte για κάθε ελληνικό χαρακτήρα).
2. Το &#902; σε απλές μόνο σελίδες, που δεν ανακατεύονται με βάσεις.
3. Το #182 σε συνδυασμό με iso-8859-7 για αυτούς που κατά προτίμηση ακολουθούνε τα formal πρότυπα.
4. Το #162 σε συνδυασμό με windows-1253 για αυτούς που είναι σκληροπυρηνικοί microsoftικοί και τους ενδιαφέρει να δουλεύουν 100% σωστά και χωρίς προβλήματα όσοι έχουν windows (π.χ. edit with notepad) και αδιαφορούν για τους υπόλοιπους browsers/λειτουργικά, ας κόψουν το λαιμό τους να γίνουν συμβατά με την MS (!!!). ;-)

Η (3) είναι η πιο διαδεδομένη επιλογή, και καλά κάνουν, γιατί το (1) σπαταλά bandwidth και το (2) θέλει κουραστικά πολλή προσοχή για να μην παρουσιάσει προβλήματα στις databases (όπως η βάση μηνυμάτων του freestuff).

So freestuff is just fine!

Υ.Γ.#1: το Εικόνα βγαίνει με alt+ctrl+6 (ή altgr+6) όταν έχεις το πληκτρολόγιο γυρισμένο στα ελληνικά&#8230;

Υ.Γ.#2: νομίζω ότι η άνω τελεία βγαίνει με κάποιον συνδυασμό του πολυτονικού πληκτρολόγιου&#8230; (Hellenic polytonic)

skeftomilos έγραψε:(Για την άνω τελεία) Μήπως ξέρεις πιο Alt+xxx είναι; Γιατί δεν το βρήκα πουθενά γραμμένο, ούτε οι τυχαίες προσπάθειές μου απέδωσαν καρπούς. :-(


Alt+0183, το βλέπεις από το charmap

Το quiz ωραίο, αλλά στο προηγούμενο μήνυμα δεν το είχα δει καν! Μάλλον βιαζόμουνα και δεν κοίταξα κάτω από την οριζόντια γραμμή, νόμισα ότι ήταν forward άλλου μηνύματος.
skeftomilos έγραψε:
alkisg έγραψε:Alt+0183, το βλέπεις από το charmap


Ναι κι εγώ το Character Map κοιτώ συνήθως, αλλά το Alt+0183 δεν είναι η άνω τελεία!

U+00B7: Middle Dot (Alt+0183)
U+0387: Greek Ano Teleia

δείγμα·δείγμα&#903;

Η γνώμη μου είναι ότι με Alt+xxx μπορούν να παραχθούν μόνο οι πρώτοι 256 χαρακτήρες, οπότε η γνήσια άνω τελεία είναι απροσπέλαστη με το πληκτρολόγιο. Μόνη λύση είναι να γίνει copy-paste.
alkisg έγραψε:Εμένα το U+00B7 μου το λέει άνω τελεία, στη Lucida και την Courier που κοίταξα (ελληνικά windows).

Anyway, παλιότερα χρησιμοποιούσαμε αυτή, αφού οι περισσότερες γραμματοσειρές δεν έχουν όλους τους χαρακτήρες Unicode.

Πάντως στα richedit controls v3.0 και μετά (= word, wordpad, οι περισσότεροι editors) μπορείς να βάλεις unicode characters γράφοντας τον αριθμό και πατώντας alt+X.

Π.χ.

0387[Alt+X]

Βγάζει &#903;
Υ.Γ. Η δημοσιοποίηση της αλληλογραφίας γίνεται με τη συγκατάθεση του alkisg φυσικά.
Τελευταία επεξεργασία από το μέλος skeftomilos την 26 Νοέμ 2005 02:48, έχει επεξεργασθεί 3 φορές συνολικά.
The pure and simple truth is rarely pure and never simple. Ο μη νους δε σκέπτεται μη σκέψεις για το τίποτα.

Άβαταρ μέλους
greekbytes
WebDev Moderator
Δημοσιεύσεις: 2438
Εγγραφή: 15 Νοέμ 2002 15:42
Τοποθεσία: Αθήνα
Επικοινωνία:

Ά και άνω τελεία

Δημοσίευση από greekbytes » 24 Νοέμ 2005 20:36

Πολύ διαφωτιστικό! το απόφθεγμα τελικά είναι αυτό: ??
[..]Με άλλα λόγια, φταίει το notepad, χρησιμοποίησε κάτι άλλο (frontpage, dreamweaver, ultraedit κτλ)
:roll:

Απάντηση

Επιστροφή στο “HTML και XHTML”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 1 επισκέπτης