Για να ορίσω charset για HTML5 Doctype, ποια συμβολική γραφή πρέπει να χρησιμοποιήσω;
Σύντομη:
<meta charset="utf-8" />,
Μακρύ:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />,
Στην HTML5, είναι ισοδύναμες. Χρησιμοποιήστε το συντομότερο, είναι πιο εύκολο να το θυμάστε και να το πληκτρολογήσετε. Η υποστήριξη του προγράμματος περιήγησης είναι μια χαρά, καθώς σχεδιάστηκε για συμβατότητα προς τα πίσω.
Και οι δύο μορφές της δήλωσης meta charset είναι ισοδύναμες και θα πρέπει να λειτουργούν το ίδιο σε όλους τους φυλλομετρητές. Αλλά, υπάρχουν μερικά πράγματα που πρέπει να θυμάστε όταν δηλώνετε το σύνολο χαρακτήρων των αρχείων ιστού σας ως UTF-8:
Οι διακομιστές Apache είναι ρυθμισμένοι να εξυπηρετούν τα αρχεία σε ISO-8859-1 από προεπιλογή, οπότε πρέπει να προσθέσετε την ακόλουθη γραμμή στο αρχείο σας .htaccess
:
AddDefaultCharset UTF-8
Αυτό θα ρυθμίσει τον Apache να εξυπηρετεί τα αρχεία σας δηλώνοντας την κωδικοποίηση UTF-8 στην κεφαλίδα απόκρισης Content-Type, αλλά τα αρχεία σας πρέπει να αποθηκεύονται αρχικά σε UTF-8 (χωρίς BOM).
Το Σημειωματάριο δεν μπορεί να αποθηκεύσει τα αρχεία σας σε UTF-8 χωρίς το BOM. Ένας δωρεάν επεξεργαστής που μπορεί να το κάνει είναι το Notepad++. Στη γραμμή μενού του προγράμματος, επιλέξτε "Encoding > Encode in UTF-8 without BOM". Μπορείτε επίσης να ανοίξετε αρχεία και να τα αποθηκεύσετε εκ νέου σε UTF-8 χρησιμοποιώντας το πρόγραμμα "Encoding > Convert to UTF-8 without BOM".
Περισσότερα για το Byte Order Mark (BOM) στη Βικιπαίδεια.
Ένας άλλος λόγος για να επιλέξετε το σύντομο είναι ότι ταιριάζει με άλλες περιπτώσεις όπου μπορεί να καθορίσετε ένα σύνολο χαρακτήρων στη σήμανση. Για παράδειγμα:
<script type="javascript" charset="UTF-8" src="/script.js"></script>
<p><a charset="UTF-8" href="http://example.com/">Example Site</a></p>
Η συνέπεια βοηθά στη μείωση των λαθών και κάνει τον κώδικα πιο ευανάγνωστο.
Σημειώστε ότι το χαρακτηριστικό charset δεν λαμβάνει υπόψη την πεζότητα. Μπορείτε να χρησιμοποιήσετε UTF-8 ή utf-8, ωστόσο το UTF-8 είναι πιο σαφές, πιο ευανάγνωστο, πιο ακριβές.
Επίσης, δεν υπάρχει απολύτως κανένας λόγος να χρησιμοποιήσετε οποιαδήποτε άλλη τιμή εκτός από UTF-8 στο χαρακτηριστικό meta charset ή στην επικεφαλίδα της σελίδας. Η κωδικοποίηση UTF-8 είναι η προεπιλεγμένη κωδικοποίηση για τα έγγραφα του Web από την HTML4 το 1999 και ο μόνος πρακτικός τρόπος για την κατασκευή σύγχρονων ιστοσελίδων.
Επίσης, δεν πρέπει να χρησιμοποιείτε οντότητες HTML σε UTF-8. Χαρακτήρες όπως το σύμβολο των πνευματικών δικαιωμάτων θα πρέπει να πληκτρολογούνται απευθείας. Οι μόνες οντότητες που θα πρέπει να χρησιμοποιείτε είναι για τους 5 δεσμευμένους χαρακτήρες σήμανσης: μικρότερο από, μεγαλύτερο από, ampersand, prime, double prime. Οι οντότητες χρειάζονται έναν αναλυτή HTML, τον οποίο μπορεί να μην θέλετε πάντα να χρησιμοποιείτε στο μέλλον, εισάγουν σφάλματα, κάνουν τον κώδικά σας λιγότερο ευανάγνωστο, αυξάνουν το μέγεθος των αρχείων σας και μερικές φορές αποκωδικοποιούνται λανθασμένα σε διάφορους φυλλομετρητές ανάλογα με το ποιες οντότητες χρησιμοποιήσατε. Μάθετε πώς να πληκτρολογείτε/εισάγετε πνευματικά δικαιώματα, εμπορικά σήματα, ανοιχτά εισαγωγικά, κλειστά εισαγωγικά, απόστροφο, παύλα em, παύλα en, κουκκίδες, ευρώ και οποιουσδήποτε άλλους χαρακτήρες συναντάτε στο περιεχόμενό σας και να χρησιμοποιείτε αυτούς τους πραγματικούς χαρακτήρες στον κώδικά σας. Ο Mac διαθέτει μια Προβολή χαρακτήρων που μπορείτε να ενεργοποιήσετε στην Προτίμηση συστήματος πληκτρολογίου και μπορείτε να βρείτε και στη συνέχεια να σύρετε και να αποθέσετε τους χαρακτήρες που χρειάζεστε ή να χρησιμοποιήσετε την αντίστοιχη Προβολή πληκτρολογίου για να δείτε ποια πλήκτρα πρέπει να πληκτρολογήσετε. Για παράδειγμα, το εμπορικό σήμα είναι Option+2. Το UTF-8 περιέχει όλους τους χαρακτήρες και τα σύμβολα από κάθε γραπτή ανθρώπινη γλώσσα. Έτσι, δεν υπάρχει καμία δικαιολογία για τη χρήση -- αντί για παύλα em. Δεν είναι κακή ιδέα να μάθετε επίσης τους κανόνες στίξης και τυπογραφίας ... για παράδειγμα, να γνωρίζετε ότι η τελεία μπαίνει μέσα σε ένα κλειστό εισαγωγικό και όχι έξω από αυτό.
Η χρήση μιας ετικέτας <meta> για κάτι όπως ο τύπος περιεχομένου και η κωδικοποίηση είναι ιδιαίτερα ειρωνικό, αφού χωρίς να γνωρίζετε αυτά τα πράγματα, δεν θα μπορούσατε να αναλύσετε το αρχείο για να λάβετε την τιμή της ετικέτας meta.
Όχι, αυτό δεν είναι αλήθεια. Το πρόγραμμα περιήγησης ξεκινά την ανάλυση του αρχείου ως την προεπιλεγμένη κωδικοποίηση του προγράμματος περιήγησης, είτε UTF-8 είτε ISO-8859-1. Δεδομένου ότι το US-ASCII είναι ένα υποσύνολο τόσο του ISO-8859-1 * όσο και του UTF-8, το πρόγραμμα περιήγησης μπορεί να διαβάσει το
μια χαρά και με τους δύο τρόπους ... είναι το ίδιο. Όταν το πρόγραμμα περιήγησης συναντά την ετικέτα meta charset, εάν η κωδικοποίηση είναι διαφορετική από αυτή που χρησιμοποιεί ήδη το πρόγραμμα περιήγησης, το πρόγραμμα περιήγησης επαναφορτώνει τη σελίδα στην καθορισμένη κωδικοποίηση. Αυτός είναι ο λόγος για τον οποίο τοποθετούμε την ετικέτα meta charset στην κορυφή, αμέσως μετά την ετικέτα head, πριν από οτιδήποτε άλλο, ακόμη και τον τίτλο. Με αυτόν τον τρόπο μπορείτε να χρησιμοποιήσετε χαρακτήρες UTF-8 στον τίτλο σας.Πρέπει να αποθηκεύσετε το αρχείο (τα αρχεία) σας σε κωδικοποίηση UTF-8 χωρίς BOM
Αυτό δεν είναι απολύτως αληθές. Αν έχετε μόνο χαρακτήρες US-ASCII στο έγγραφό σας, μπορείτε να το αποθηκεύσετε ως US-ASCII και να το σερβίρετε ως UTF-8, επειδή πρόκειται για υποσύνολο. Αλλά αν υπάρχουν χαρακτήρες Unicode, έχετε δίκιο, πρέπει να Αποθηκεύσετε ως UTF-8 χωρίς BOM.
Αν θέλετε έναν καλό επεξεργαστή κειμένου που θα αποθηκεύει τα αρχεία σας σε UTF-8, συνιστώ το Notepad++.
Στο Mac, χρησιμοποιήστε το Bare Bones TextWrangler (δωρεάν) από το Mac App Store ή το Bare Bones BBEdit που βρίσκεται στο Mac App Store για $39,99 ... πολύ φτηνό για ένα τόσο μεγάλο εργαλείο. Σε κάθε εφαρμογή, υπάρχει ένα μενού στο κάτω μέρος του παραθύρου του εγγράφου όπου καθορίζετε την κωδικοποίηση του εγγράφου και μπορείτε εύκολα να επιλέξετε "UTF-8 no BOM". Και φυσικά μπορείτε να την ορίσετε ως προεπιλογή για τα νέα έγγραφα στις Προτιμήσεις.
Αλλά αν ο διακομιστής Web σας εξυπηρετεί την κωδικοποίηση στην κεφαλίδα HTTP, που συνιστάται, και οι δύο [meta tags] είναι περιττές.
Αυτό είναι εσφαλμένο. Φυσικά θα πρέπει να ορίσετε την κωδικοποίηση στην επικεφαλίδα HTTP, αλλά θα πρέπει επίσης να την ορίσετε στο χαρακτηριστικό meta charset, έτσι ώστε η σελίδα να μπορεί να αποθηκευτεί από τον χρήστη, από το πρόγραμμα περιήγησης σε τοπικό αποθηκευτικό χώρο και στη συνέχεια να ανοίξει ξανά αργότερα, οπότε η μόνη ένδειξη της κωδικοποίησης που θα υπάρχει είναι το χαρακτηριστικό meta charset. Θα πρέπει επίσης να ορίσετε μια ετικέτα βάσης για τον ίδιο λόγο ... στον διακομιστή, η ετικέτα βάσης είναι περιττή, αλλά όταν ανοίγει από τον τοπικό αποθηκευτικό χώρο, η ετικέτα βάσης επιτρέπει στη σελίδα να λειτουργεί σαν να βρίσκεται στον διακομιστή, με όλα τα περιουσιακά στοιχεία στη θέση τους και ούτω καθεξής, χωρίς σπασμένους συνδέσμους.
AddDefaultCharset UTF-8
Ή μπορείτε απλώς να αλλάξετε την κωδικοποίηση συγκεκριμένων τύπων αρχείων, όπως παρακάτω:
AddType text/html;charset=utf-8 html
Μια συμβουλή για την εξυπηρέτηση τόσο των αρχείων UTF-8 όσο και των αρχείων Latin-1 (ISO-8859-1) είναι να δώσετε στα αρχεία UTF-8 την επέκταση "text" και στα αρχεία Latin-1 την επέκταση "txt.",
AddType text/plain;charset=iso-8859-1 txt
AddType text/plain;charset=utf-8 text
Τέλος, σκεφτείτε να αποθηκεύσετε τα έγγραφά σας με καταλήξεις γραμμών του Unix, όχι με τις παλαιές καταλήξεις γραμμών του DOS ή του (κλασικού) Mac, οι οποίες δεν βοηθούν και μπορεί να βλάψουν, ειδικά στην πορεία, καθώς απομακρυνόμαστε όλο και περισσότερο από αυτά τα παλαιά συστήματα. Ένα έγγραφο HTML με έγκυρη HTML5, κωδικοποίηση UTF-8 και καταλήξεις γραμμών Unix είναι μια δουλειά που έχει γίνει καλά. Μπορείτε να μοιραστείτε και να επεξεργαστείτε και να αποθηκεύσετε και να διαβάσετε και να ανακτήσετε και να βασιστείτε σε αυτό το έγγραφο σε πολλά πλαίσια. Είναι η lingua franca. Είναι ψηφιακό χαρτί.