1598 votes

<meta charset="'utf-8'"> vs <meta http-equiv="'Content-Type'">

Afin de définir le jeu de caractères pour un Doctype HTML5, dont la notation dois-je utiliser?

  1. Bref:

    <meta charset="utf-8"> 
    
  2. Long:

    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    

1117voto

Quentin Points 325526

En HTML5, elles sont équivalentes. L'utilisation la plus courte, il est plus facile à retenir et à taper. Prise en charge du navigateur est très bien car il a été conçu pour la compatibilité ascendante.

253voto

CodeBoy Points 1325

Les deux formes de la meta charset déclaration sont équivalentes et doit fonctionner de la même manière sur tous les navigateurs. Mais, il ya quelques choses que vous devez retenir lors de la déclaration de vos fichiers web de jeu de caractères UTF-8:

  1. Enregistrez votre fichier(s) dans l'encodage UTF-8 sans la marque d'ordre d'octet (BOM).
  2. Déclarer l'encodage de vos fichiers HTML à l'aide de meta charset (comme ci-dessus).
  3. Votre serveur web doit servir de vos fichiers, de déclarer l'encodage UTF-8 dans le Type de Contenu d'en-tête HTTP.

Apache serveurs sont configurés pour servir les fichiers en ISO-8859-1 par défaut, vous devez ajouter la ligne suivante à votre .htaccess le fichier:

AddDefaultCharset UTF-8

Cela permettra de configurer Apache pour servir vos fichiers de déclarer l'encodage UTF-8 dans le Type de Contenu d'en-tête de réponse, mais vos fichiers doivent être enregistrés en UTF-8 (sans BOM) pour commencer.

Le bloc-notes ne peut pas enregistrer vos fichiers en UTF-8 sans BOM. Un éditeur gratuit pouvez est Notepad++. Sur le programme de la barre de menu, sélectionnez "Encoding > Encoder en UTF-8 sans BOM". Vous pouvez également ouvrir des fichiers et ré-enregistrer en UTF-8 à l'aide de "Encoding > Convertir en UTF-8 sans BOM".

Plus sur la Marque d'Ordre des Octets (BOM) en Wikipedia.

86voto

Simon White Points 429

Une autre raison pour aller avec le court, c'est qu'il correspond à d'autres instances où vous pouvez spécifier un jeu de caractères dans le balisage. Par exemple:

<script type="javascript" charset="UTF-8" src="/script.js"></script>

<p><a charset="UTF-8" href="http://example.com/">Example Site</a></p>

La cohérence permet de réduire les erreurs et de rendre le code plus lisible.

Notez que l'attribut charset est pas sensible à la casse. Vous pouvez utiliser l'UTF-8 ou utf-8, mais UTF-8 est plus clair, plus lisible, plus précis.

Aussi, il n'y a absolument aucune raison d'utiliser une valeur autre que UTF-8 dans le meta charset attribut ou d'un en-tête de page. UTF-8 est le codage par défaut pour les documents Web depuis HTML4, en 1999, et le seul moyen pratique de faire moderne des pages Web.

Aussi, vous ne devez pas utiliser les entités HTML en UTF-8. Des personnages comme le symbole du droit d'auteur qui doit être tapé directement. Les seules entités à utiliser sont pour le 5 réservé caractères de balisage: moins que, plus que, esperluette, le premier, le double du premier. Les entités ont besoin d'un analyseur HTML, ce qui vous ne pouvez pas toujours utiliser à l'avenir, ils introduisent des erreurs, faites votre code moins lisible, augmentation de la taille des fichiers, et parfois décoder correctement dans différents navigateurs selon laquelle les entités que vous avez utilisé. Apprendre à taper/insérez le droit d'auteur, marque de commerce, ouvert devis, fin de la citation, de l'apostrophe, le tiret cadratin, demi-cadratin, de balle, de l'Euro, et de tout autres personnages que vous rencontrez dans votre contenu, et d'utiliser ces caractères dans votre code. Le Mac a un Visualiseur de Caractères que vous pouvez activer dans le Clavier des Préférences Système, et vous pouvez trouver et puis faites glisser et déposez les caractères dont vous avez besoin, ou utiliser le correspondant Visualiseur de Clavier pour voir les touches pour taper. Par exemple, la marque est l'Option+2. UTF-8 contient tous les caractères et les symboles de tous les écrits sur le langage humain. Donc, il n'y a aucune excuse pour l'utilisation de -- au lieu d'un tiret cadratin. Ce n'est pas une mauvaise idée d'apprendre les règles de la ponctuation et de la typographie ... par exemple, sachant qu'un délai passe à l'intérieur d'une fin de la citation, non pas à l'extérieur.

À l'aide d'une balise pour quelque chose comme type de contenu et le codage est très ironique, car sans la connaissance de ces choses, vous ne pouviez pas analyser le fichier pour obtenir la valeur de la balise meta.

Non, ce n'est pas vrai. Le navigateur commence l'analyse du fichier, comme le navigateur par défaut de codage, le codage UTF-8 ou ISO-8859-1. Depuis US-ASCII est un sous-ensemble de l'ISO-8859-1 et UTF-8, le navigateur ne peut lire juste bien de toute façon ... c'est la même chose. Lorsque le navigateur rencontre la meta charset de la balise, si le codage est différent de ce que le navigateur est déjà utilisé, le navigateur recharge la page dans l'encodage spécifié. C'est pourquoi nous avons mis la meta charset de la balise en haut, à droite après la balise head, avant toute autre chose, même le titre. De cette façon, vous pouvez utiliser les caractères UTF-8 dans votre titre.

Vous devez enregistrer votre fichier(s) dans l'encodage UTF-8 sans BOM

Qui n'est pas strictement vrai. Si vous n'avez que des caractères US-ASCII dans votre document, vous pouvez l'Enregistrer en tant que US-ASCII, et de le servir en tant que UTF-8, car c'est un sous-ensemble. Mais si il y a des caractères Unicode, vous avez raison, vous devez l'Enregistrer en UTF-8 sans BOM.

Si vous voulez un bon éditeur de texte qui vous permettra de sauver vos fichiers en UTF-8, je recommande Notepad++.

Sur le Mac, utilisez Bare Bones TextWrangler (gratuit) à partir du Mac App Store, ou Bare Bones BBEdit qui est au Mac App Store au prix de 39.99 $ ... très bon marché pour un excellent outil. Dans l'app, il y a un menu en bas de la fenêtre de document, où vous spécifiez le codage du document et vous pouvez facilement choisir "UTF-8 sans BOM". Et bien sûr, vous pouvez le définir comme valeur par défaut pour les nouveaux documents dans les Préférences.

Mais si votre Serveur sert l'encodage dans l'en-tête HTTP, ce qui est recommandé, à la fois [balises meta] sont inutiles.

C'est incorrect. Vous devez bien sûr définir l'encodage dans l'en-tête HTTP, mais vous devez également définir dans le meta charset attribut de sorte que la page peut être Sauvé par l'utilisateur, de la navigateur sur un stockage local et Ouvre à nouveau plus tard, auquel cas la seule indication de l'encodage qui va être présent est le meta charset attribut. Vous devez également définir une balise pour la même raison ... sur le serveur, la base de la balise est inutile, mais lors de l'ouverture du local de stockage, la base de balise permet à la page de travailler comme si il est sur le serveur, avec tous les actifs en place et ainsi de suite, pas de liens cassés.

AddDefaultCharset UTF-8

Ou vous pouvez simplement changer l'encodage de particulier les types de fichier comme suit:

AddType text/html;charset=utf-8 html

Une astuce pour servir à la fois de l'UTF-8 et en Latin-1 (ISO-8859-1) consiste à donner les fichiers UTF-8 d'un "texte" de l'extension et du Latin-1. les fichiers "txt."

AddType text/plain;charset=iso-8859-1 txt
AddType text/plain;charset=utf-8 text

Enfin, pensez à enregistrer vos documents avec des fins de ligne Unix, pas d'héritage DOS ou (classique) Mac fins de ligne, ce qui n'aide pas et peuvent blesser, surtout en bas de la ligne que nous aller plus loin et plus loin de ces systèmes hérités. Un document HTML avec HTML5 valide, l'encodage UTF-8, et les fins de lignes Unix est un travail bien fait. Vous pouvez les partager et de les modifier et de les stocker et de les lire et de les récupérer et de s'appuyer sur ce document dans de nombreux contextes. C'est la lingua franca. C'est du papier numérique.

32voto

Omar Points 1218

<meta charset="utf-8"> a été introduit avec/pour HTML5.

Comme mentionné dans la documentation, les deux sont valables. Toutefois, <meta charset="utf-8"> est uniquement pour HTML5 (et plus facile à taper/souvenez-vous).

-À mon avis, que le temps passe, le style ancien est lié à devenir obsolète dans l'avenir. Je collerais à la nouvelle - <meta charset="utf-8">.

Documentation: http://www.w3schools.com/tags/att_meta_charset.asp

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X