Το Accesskey n μεταβαίνει στην πλοήγηση εντός σελίδας. Μετάβαση στην έναρξη περιεχομένου

Το παρόν έγγραφο είναι μετάφραση. Σε περίπτωση τυχόν ασυμφωνιών ή σφαλμάτων, επίσημο θα πρέπει να θεωρηθεί το πιο πρόσφατο αγγλικό πρωτότυπο. Τα πρωτότυπα πνευματικά δικαιώματα ανήκουν στην W3C, όπως περιγράφεται παρακάτω.

Μεταφραστής: microo.net editor team, Γιώργος Τσιλεδάκης

s_gotoW3cHome Internationalization
 

Πολυγλωσσικές Φόρμες

Προοριζόμενο κοινό: προγραμματιστές 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 σε αντίθετη περίπτωση.

Πείτε μας τη γνώμη σας (στα Αγγλικά).

Εγγραφή σε Τροφοδότη Ειδήσεων RSS.

Νέο υλικό πληροφόρησης

Κεντρική σελίδα Νέων

Twitter (Κεντρική σελίδα Νέων)

‎@webi18n

Περαιτέρω μελέτη

Συγγραφέας: Martin Dürst, W3C. Μεταφραστής: microo.net editor team, Γιώργος Τσιλεδάκης.

Έγκυρο XHTML 1.0!
Valid CSS!
Κωδικοποιημένο σε UTF-8!

Μεταφράστηκε από το αγγλικό περιεχόμενο την ημερομηνία 2007-10-26. Τελευταία αλλαγή της μεταφρασμένης έκδοσης 2010-08-20 11:15 GMT

Τελευταία αλλαγή της μεταφρασμένης έκδοσης qa-forms-utf-8 στο i18n blog.