Προς το περιεχόμενο

php problem


xamenos121

Προτεινόμενες αναρτήσεις

Δημοσ.

Πρέπει να βάλεις στα headers της εντολής mail την ελληνική κωδικοποιήση.

Content-Type: charset=ISO-8859-7\n

Προσοχή μόνο με το χαρακτήρα: Ά γιατί υπάρχει πρόβλημα!

;)

Δημοσ.

Δεν κατάλαβα ποτέ γιατί τα ίδια σύμβολα στις κωδικοποιήσεις της ίδιας σελίδας βρίσκονται σε άλλη θέση;;;;

Εκεί που βρίσκεται το Ά στην ISO-8859-7, στην Windows-1253 βρίσκεται το σύμβολο παραγράφου και εκεί που βρίσκεται το Ά στην Windows-1253, στην ISO-8859-7 βρίσκεται ένα τετραγωνάκι. Τρέχα γύρευε δηλαδή.

Με την ISO επίσης θα έχεις πρόβλημα με το σύμβολο του €, γιατί αν δεν κάνω λάθος, όταν βγήκε η συγκεκριμένη κωδικοποιήση το Ευρώ δεν υπήρχε.

;)

Δημοσ.

Ενημερωτικά, όταν βγήκαν ΚΑΙ ΟΙ ΔΥΟ κωδικοποιήσεις το ευρώ δεν υπήρχε, αλλά και οι δύο κωδικοποιήσεις το πρόσθεσαν στη συνέχεια... Η αναθεώρηση του iso-8859-7 έγινε το 2003, για την windows-1253 δε θυμάμαι...

Δημοσ.

Τότε γιατί όταν γράφω το σύμβολο του Ευρώ στη σελίδα μου ως € μου το βγάζει τετραγωνάκι και πρέπει να το γράψω ως Unicode για να το δεχτεί;

H κωδικοσελίδα που έχω ορίσει για τη σελίδα είναι η ISO?

Δεδομένου ότι ισχύει αυτό που λες τι κάνω λάθος και βγαίνει τετραγωνάκι;

:)

Δημοσ.

Επειδή γράφεις λάθος σύμβολο, ή επειδή ο browser σου δεν υποστηρίζει το ενημερωμένο πρότυπο.

 

Αν π.χ. δουλεύεις με το Notepad, και γράψεις το ευρώ, τότε αυτό δεν είναι το σωστό σύμβολο. Θα πρέπει να γράψεις τον χαρακτήρα με ord(0xA4), όπως μπορείς να δεις και από τη σελίδα ορισμού του iso-8859-7: http://www.unicode.org/Public/MAPPINGS/ISO8859/8859-7.TXT

 

Δυστυχώς κάποιοι browsers δεν υποστηρίζουν το ανανεωμένο πρότυπο, τσέκαρέ το καλύτερα με firefox ή opera....

Δημοσ.

Τι εννοείς γράφω λάθος σύμβολο;

Όπως το γράφω εδώ το γράφω και στη σελίδα.

Για να γράφω το κώδικα χρησιμοποιώ το Textpad.

Δεν ξέρω αν είναι το ίδιο με το Σημειωματάριο αλλά όλα τα άλλα γράμματα και σύμβολα, εκτός του τονσιμένου Α και του Ευρώ €, εμφανίζονται σωστά. Για αυτό μου φαίνεται περίεργο.

Και ως φυλλομετρητή χρησιμοποιώ τους τέσσερις γνωστούς (ΙΕ, Netscape, Opera, Firefox) στις τελευταίες τους εκδόσεις.

Και στους τέσσερεις το πρόβλημα είναι το ίδιο.

:)

Δημοσ.

Λοιπόν...

 

Γράφεις μια σελίδα σε iso-8859-7 (υποτίθεται σωστά, όπως θα εξηγήσω παρακάτω). Μετά την βλέπεις με τον browser. Όλα καλά.

Γυρίζεις τον browser (χειρωνακτικά) σε Windows-1253. Προφανώς θα δεις τετραγωνάκια κτλ, αφού άλλαξες κωδικοποίηση.

 

Δηλαδή όταν χρησιμοποιούμε διαφορετική κωδικοσελίδα απ' ότι σχεδιάστηκε η σελίδα, είναι λογικό να βλέπουμε τετραγωνάκια.

 

Πάμε στο σημειωματάριο (δεν μιλάω για το textpad γιατί δεν το έχω δουλέψει, αλλά αν χρησιμοποιεί ANSI κωδικοσελίδα είναι το ίδιο). Τι κωδικοσελίδα χρησιμοποιεί; Το σημειωματάριο προφανώς χρησιμοποιεί ANSI κωδικοσελίδα, δηλαδή Windows-1253. Είναι δηλαδή σαν να βλέπουμε τη σελίδα στον IE, έχοντας αλλάξει χειρωνακτικά την κωδικοποίηση.

Για να είναι λοιπόν σωστή η iso-8859-7 σελίδα μας, θα πρέπει όταν την βλέπουμε στο σημειωματάριο να ΜΗΝ ΒΛΕΠΟΥΜΕ το τονισμένο Α και το ευρώ. Αν τα βλέπουμε, δεν την έχουμε γράψει σωστά.

 

Και τι θα πρέπει να βλέπουμε όταν ανοίγουμε μια iso-8859-7 σελίδα, όταν την ανοίγουμε με το σημειωματάριο;

Πάμε καταρχάς στον ορισμό του iso-8859-7 και βλέπουμε ότι το ευρώ είναι στη θέση 0xA4 και το τονισμένο Α στη θέση 0xB6.

 

Συνεχίζουμε με έναρξη->εκτέλεση->charmap. Για να μην μπλέξουμε και με ένα άλλο θέμα (default font charset) το οποίο μπορεί να μας αποπροσανατολίσει, επιλέγουμε τη γραμματοσειρά FixedSys. Τι έχει στη θέση 0xA4; Το ¤. Τι έχει στη θέση 0xB6; Το ¶.

 

Επομένως σε μια σωστή iso-8859-7 σελίδα, όταν την ανοίγουμε με το σημειωματάριο, θα πρέπει

αντί του ευρώ να βλέπουμε το ¤, και

αντί του τονισμένου Α να βλέπουμε το ¶.

Αν δεν τα βλέπουμε, τότε δεν έχουμε γράψει σωστά τη σελίδα μας.

 

Πάμε στο τελευταίο βήμα, ΠΩΣ γράφουμε σωστά μια iso-8859-7 σελίδα.

Προφανώς αν χρησιμοποιούμε το σημειωματάριο, τότε κάθε φορά που θέλουμε να γράψουμε το ευρώ, θα πρέπει να γράφουμε το ¤.

Επίσης, κάθε φορά που θέλουμε να γράψουμε το τονισμένο Α, να γράφουμε το ¶.

 

Λογική αντίδραση ακούγοντας τα παραπάνω: "Νομίζω ότι αυτό είναι απαράδεκτο, γιατί να μην τα βλέπουμε σωστά και κατά τη συγγραφή της σελίδας; Και γιατί να μην μπορούμε να τα εισάγουμε και από το πληκτρολόγιο;"

 

Πολύ σωστή αντίδραση. Γι' αυτό λοιπόν πρέπει να παρατήσουμε το σημειωματάριο και όλους τους άλλους editors (πιθανώς και το textpad, δεν το ξέρω) που δεν υποστηρίζουν εναλλακτικές κωδικοποιήσεις, εκτός της ANSI και της Unicode.

 

Και που να γράφουμε;

Μπορούμε να χρησιμοποιούμε το Visual studio, το Dreamweaver, το Ultraedit κτλ κτλ. Σε όλα αυτά τα προγράμματα μπορείς να επιλέξεις κωδικοσελίδα συγγραφής, έτσι ώστε να μπορείς να εισάγεις HTML κατευθείαν στην κωδικοσελίδα που χρειάζεσαι. Δηλαδή πατώντας Ά στο πληκτρολόγιο αναλαμβάνει ο editor να καταλάβει ότι είναι το 0xB6, και μάλιστα στο δείχνει στην οθόνη πάλι σε iso-8859-7 κωδικοσελίδα, οπότε δεν βλέπεις ¶ αλλά κανονικά το Ά.

 

Υπάρχουν κι άλλες "εξηγήσεις" που "πρέπει να δωθούν" για τη χρήση διαφορετικών κωδικοσελίδων (π.χ. ασυμβατότητες IE, default font charsets κτλ) αλλά νομίζω έστω και με τα παραπάνω είναι σαφές το γιατί δεν πρέπει να γράφουμε iso-8859-7 ιστοσελίδες σε ακατάλληλους editors.

Δημοσ.

Ήσουν απόλυτα σαφής!;)

Σε ευχαριστώ για την ενημέρωση.

To Textpad χρησιμοποιεί και αυτό ANSI γραμματοσειρά.

:)

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...