Το Accesskey n μεταβαίνει στην πλοήγηση εντός σελίδας. Μετάβαση στην έναρξη περιεχομένου
Το παρόν έγγραφο είναι μετάφραση. Σε περίπτωση τυχόν ασυμφωνιών ή σφαλμάτων, επίσημο θα πρέπει να θεωρηθεί το πιο πρόσφατο αγγλικό πρωτότυπο. Τα πρωτότυπα πνευματικά δικαιώματα ανήκουν στην W3C, όπως περιγράφεται παρακάτω.
Μεταφραστής: microo.net editor team, Γιώργος Τσιλεδάκης
Προοριζόμενο κοινό: προγραμματιστές XHTML / HTML (που χρησιμοποιούν συντακτικά προγράμματα ή scripting), προγραμματιστές script (PHP, JSP, κ.λ.π.), διαχειριστές διαδικτυακών έργων και οποιονδήποτε αναζητεί πληροφορίες για το πώς να χειριστέι κωδικοποιήσεις χαρακτήρων σε φόρμες.
Ποιός είναι ο καλύτερος τρόπος να χειριστεί κανείς θέματα κωδικοποίησης σε φόρμες, οι οποίες μπορεί να χρησιμοποιούν πολλαπλές γλώσσες και scripts;
Ο καλύτερος τρόπος να χειριστείτε θέματα κωδικοποίησης σε (X)HTML φόρμες είναι να παρέχετε όλες τις σελίδες σας σε UTF-8. Η UTF-8 μπορεί να απεικονίσει τους χαρακτήρες στο ευρύτερο φάσμα γλωσσών. Οι φυλλομετρητές στέλνουν πίσω τα δεδομένα της φόρμας με την ίδια κωδικοποίηση, που έχει και η σελίδα που περιέχει την φόρμα, έτσι ώστε ο χρήστης να μπορεί να συμπληρώσει στοιχεία σε οποιαδήποτε γλώσσα και γραφή χρειάζεται.
Υπάρχουν μερικές λεπτομέρειες για να βεβαιωθείτε ότι αυτή η προσέγγιση λειτουργεί καλά. Πρώτον, είναι σημαντικό να δηλώσετε στον φυλλομετρητή ότι η σελίδα της φόρμας είναι σε UTF-8. Υπάρχουν ποικίλοι τρόποι να δηλώσετε στον φυλλομετρητή την κωδικοποίηση της σελίδας σας. Αυτό είναι σημαντικό σε κάθε περίπτωση, αλλά και ακόμα περισσότερο εάν η ίδια η σελίδα της φόρμας σας δεν περιέχει καθόλου χαρακτήρες εκτός US-ASCII, αλλά οι χρήστες σας ίσως πληκτρολογήσουν άλλους χαρακτήρες.
Δεύτερον, ίσως είναι καλή ιδέα το script, που λαμβάνει τα δεδομένα της φόρμας, να ελέγχει αν τα δεδομένα αυτά πράγματι χρησιμοποιούν UTF-8 (σε περίπτωση που κάτι δεν πήγε καλά, π.χ. ο χρήστης άλλαξε την κωδικοποίηση). Ο έλεγχος είναι εφικτός επειδή η UTF-8 έχει μία πολύ συγκεκριμένη διάταξη-byte, που δεν συναντάται σε καμία άλλη κωδικοποίηση. Αν ληφθούν μη-UTF-8 δεδομένα, θα πρέπει να επιστέφεται ένα μήνυμα λάθους.
Για παράδειγμα, σε Perl, ένας έλεγχος για UTF-8 μεσω κανονικής έκφρασης (regular expression) μπορεί να γίνει όπως παρακάτω:
$field =~
m/\A(
[\x09\x0A\x0D\x20-\x7E] # ASCII
| [\xC2-\xDF][\x80-\xBF] # non-overlong 2-byte
| \xE0[\xA0-\xBF][\x80-\xBF] # excluding overlongs
| [\xE1-\xEC\xEE\xEF][\x80-\xBF]{2} # straight 3-byte
| \xED[\x80-\x9F][\x80-\xBF] # excluding surrogates
| \xF0[\x90-\xBF][\x80-\xBF]{2} # planes 1-3
| [\xF1-\xF3][\x80-\xBF]{3} # planes 4-15
| \xF4[\x80-\x8F][\x80-\xBF]{2} # plane 16
)*\z/x;
Η έκφραση αυτή μπορεί να προσαρμοστεί σε άλλες γλώσσες προγραμματισμού. Ελέγχει διάφορα ζητήματα, όπως μη επιτρεπτές overlong κωδικοποιήσεις και μη επιτρεπτή χρήση υποκατάστατων (surrogates). Θα επιστρέψει true αν το $field είναι UTF-8, και false σε αντίθετη περίπτωση.
Πείτε μας τη γνώμη σας (στα Αγγλικά).
Μεταφράστηκε από το αγγλικό περιεχόμενο την ημερομηνία 2007-10-26. Τελευταία αλλαγή της μεταφρασμένης έκδοσης 2008-08-30 13:14 GMT
Τελευταία αλλαγή της μεταφρασμένης έκδοσης qa-forms-utf-8 στο i18n blog.
Copyright © 2004-2008 W3C® (MIT, ERCIM, Keio), All Rights Reserved. W3C liability, trademark, document use and software licensing rules apply. Your interactions with this site are in accordance with our public and Member privacy statements.