Cela me déroute depuis un certain temps. Avec l'avènement de l'UTF-8 comme norme de facto dans le développement Web, je ne suis pas sûr dans quelles situations je suis censé utiliser les entités HTML et pour lesquelles devrais-je simplement utiliser le caractère UTF-8. Par exemple,
- tiret em (-,
&emdash;
) - esperluette (&,
&
) - 3/4 fraction (¾,
¾
)
Veuillez faire la lumière sur ce problème. Cela sera apprécié.
html
xhtml
html-entities
Allesklar
la source
la source
Réponses:
Vous n'avez généralement pas besoin d'utiliser des entités de caractères HTML si votre éditeur prend en charge Unicode. Les entités peuvent être utiles lorsque:
code est plus clair que le caractère d'espace blanc correspondant.<
,&
ou"
.la source
au lieu du caractère d'espacement réel, en partie parce que Firefox convertit U + 00A0 en U + 0020 dans les formulaires. Donc, utiliser l'entité dans ce cas est le seul moyen de s'assurer que la source ne soit pas perturbée chaque fois qu'un utilisateur de Firefox la modifie.<
qu'il faut souvent s'échapper, jamais>
(et ne"
doit s'échapper que rarement à l'intérieur des valeurs d'attribut).&
devrait toujours être utilisé à la place de&
? Y a-t-il une raison à cela?Sur la base des commentaires que j'ai reçus, j'ai examiné cela un peu plus loin. Il semble qu'actuellement, la meilleure pratique consiste à renoncer à utiliser des entités HTML et à utiliser le caractère UTF-8 à la place . Les raisons énumérées sont les suivantes:
Tant que le codage de votre page est correctement défini sur UTF-8, vous devez utiliser le caractère réel au lieu d'une entité HTML. J'ai lu plusieurs documents sur ce sujet, mais les plus utiles étaient:
Extrait de l'article UTF-8: The Secret of Character Encoding :
Cet article donne également un bel exemple impliquant l'encodage chinois. Voici l'exemple abrégé par paresse:
UTF-8:
這兩個字是甚麼意思
Entités HTML :
這兩個字是甚麼意思
Les encodages d'entité UTF-8 et HTML n'ont aucun sens pour moi, mais au moins l'encodage UTF-8 est reconnaissable en tant que langue étrangère , et il sera rendu correctement dans une zone d'édition. L'article poursuit en disant ce qui suit à propos de la version codée par entité HTML:
Comme d'autres l'ont noté, vous devez toujours utiliser des entités HTML pour les caractères XML réservés (esperluette, inférieur à, supérieur à).
la source
&entity;
syntaxe dans un document HTML avec un jeu de caractères UTF-8 déclaré, n'est-ce pas? Bien que les caractères UTF-8 simples soient meilleurs pour les raisons que vous avez énumérées, il n'y a pas de problème pour avoir des entités HTML à côté d'elles dans le même document?Je n'utiliserais pas UTF-8 pour les caractères qui sont facilement confondus visuellement. Par exemple, il est difficile de distinguer un emdash d'un moins, ou surtout un espace insécable d'un espace. Pour ces personnages, utilisez définitivement des entités.
Pour les caractères qui sont facilement compréhensibles visuellement (comme les exemples chinois ci-dessus), allez-y et utilisez UTF-8 si vous le souhaitez.
la source
Personnellement, je fais tout en utf-8 depuis longtemps, cependant, dans une page html, vous devez toujours convertir les esperluettes (&), les caractères supérieurs à (>) et inférieurs à (<) en leurs entités équivalentes, & amp ;, & gt; et & lt;
De plus, si vous avez l'intention de faire de la programmation en utilisant le texte utf-8, il y a quelques points à surveiller.
la source
Les entités peuvent vous acheter une compatibilité avec des clients en état de mort cérébrale qui ne comprennent pas correctement les encodages. Je ne pense pas que cela inclue les navigateurs actuels, mais vous ne savez jamais quels autres types de programmes pourraient vous intéresser.
Plus utile, cependant, est que les entités HTML vous protègent de vos propres erreurs: si vous configurez mal quelque chose sur le serveur et que vous finissez par servir une page avec un en-tête HTTP qui dit que c'est
ISO-8859-1
et uneMETA
balise qui dit que c'estUTF-8
, au moins votre & mdash; es fonctionnera toujours.la source
&mdash
si les en-têtes sont mal configurés, il est plus difficile de détecter un problème.Les entités HTML sont utiles lorsque vous souhaitez générer du contenu qui sera inclus (dynamiquement) dans des pages avec (plusieurs) encodages différents. Par exemple, nous avons du contenu en marque blanche qui est inclus à la fois dans les pages Web encodées ISO-8859-1 et UTF-8 ...
Si la conversion du jeu de caractères de / vers UTF-8 n'était pas un si gros désordre peu fiable (vous tombez toujours sur certains caractères et certains outils qui ne se convertissent pas correctement), la standardisation sur UTF-8 serait la voie à suivre.
la source
Si vos pages sont correctement encodées en utf-8, vous ne devriez pas avoir besoin d'entités html, utilisez simplement les caractères que vous voulez directement.
la source
Toutes les réponses précédentes ont du sens pour moi.
De plus: cela dépend principalement de l'éditeur que vous souhaitez utiliser et de la langue du document. Au minimum, l'éditeur doit prendre en charge la langue du document. Cela signifie que si votre texte est en japonais, méfiez-vous de l'utilisation d'un éditeur qui ne les affiche pas (c'est-à-dire pas d'entités pour le document lui-même). Si c'est anglais, vous pouvez même utiliser un ancien éditeur de type vim et utiliser des entités uniquement pour le relatif rarement & copy; et amis. Bien sûr: & gt; for> et d'autres HTML-specials ont encore besoin d'échappements. Mais même avec les autres langues latines-1 (allemand, français, etc.), l'écriture ä est pénible de savoir où ...
De plus, j'écris personnellement des entités pour les caractères invisibles et ceux qui ressemblent à standard-ascii et sont donc facilement confondus. Par exemple, il y a u1173 (qui ressemble à un tiret dans certains jeux de caractères) ou u1175, qui ressemble à la barre verticale. J'utiliserais des entités pour ceux-là dans tous les cas.
la source