2010-08-29 15 views
9

Lorsque vous incluez des entités HTML dans un document HTML, les entités doivent-elles provenir du même jeu de caractères que celui que le document doit utiliser? Par exemple, si je vais utiliser le signe de copyright dans un document HTML spécifié comme UTF-8, est-il nécessaire d'utiliser l'entité HTML Unicode (©) ou d'utiliser d'autres entités, telles que ASCII Entité HTML (©)?Entités de caractères HTML et jeu de caractères

Veuillez expliquer votre réponse. Je suis conscient que cela va «fonctionner», mais y a-t-il un cas où cela ne fonctionnera pas?

Merci!

+0

ASCII n'inclut pas de symbole de copyright dans l'ensemble des caractères qu'il code. – Thanatos

+0

Il voulait probablement dire ISO-8859-1 (ISO Latin 1).J'ai entendu beaucoup de gens utiliser l'ASCII de manière interchangeable avec cet encodage et bien que ce ne soit techniquement pas la même chose, je suppose qu'ils veulent dire le latin 1. – RibaldEddie

+0

En fait, je passais par une table comme celle-ci: http://www.ascii.cl /htmlcodes.htm J'ai supposé que, puisque la table affiche une colonne ASCII pour le symbole de copyright, qu'elle était dans l'encodage. –

Répondre

9

© et © Ces deux spécifient un symbole de copyright. Les entités de caractères en HTML se réfèrent toujours aux points de code Unicode, ceci est couvert par le HTML 4 Standard. Ainsi, même si votre jeu de caractères change, vos entités se réfèrent toujours aux mêmes caractères. Cela signifie également que vous pouvez encoder des caractères qui n'apparaissent pas dans le jeu de caractères de votre choix. Je viens de créer un document dans le jeu de caractères ISO-8859-1, mais il comprend un lambda grec. En outre, ASCII n'est pas capable d'encoder directement un symbole de copyright, mais cela peut passer par des entités de caractères. En lisant les commentaires sur l'autre réponse, je veux clarifier cela un peu. Si vous utilisez UTF-8 comme encodage de caractères pour votre document, vous pouvez, dans la source HTML brute, écrire un symbole de copyright tel quel. (Vous devez trouver un moyen de l'entrer, bien sûr: copier-coller étant l'habituel.) UTF-8 vous permettra d'encoder directement n'importe quel symbole que vous voulez. ISO-8859-1 est beaucoup plus limitée, et ASCII encore plus. Par exemple, dans mon HTML, si mon document est un UTF-8 document, je peux le faire:

<p>Hi there. This document is ©2010. Good day!</p> 

ou:

<p>Hi there. This document is &#xA9;2010. Good day!</p> 

ou:

Le premier est seulement valide si le jeu de caractères prend en charge "©". Les deux autres sont toujours valides, mais moins lisibles. Quel que soit l'éditeur de texte que vous utilisez, il doit être capable de vous indiquer le jeu de caractères dans lequel le document est encodé.

Si vous faites cela, vous devez vous assurer que votre serveur web informe le serveur. client du jeu de caractères, ou que votre document, il déclare avec quelque chose comme:

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

Je l'ai utilisé UTF-8 il comme exemple. XHTML doit avoir le jeu de caractères dans la balise d'ouverture <?xml ... ?>.

+0

Correct, donc si pour une raison quelconque vous n'utilisez ni Latin 1 ni Unicode comme jeu de caractères de votre document, vous pouvez toujours afficher le symbole de copyright en utilisant ces entités. – RibaldEddie

+0

@Thanatos Où est la source faisant autorité de cette information? Je fais un travail qui couvre plus que ce cas d'utilisation et j'aimerais avoir plus de détails. Merci. –

+0

@jeyoung Quelle partie de ces articles recherchez-vous une source? Comment encoder des entités est cité dans le post, même si aujourd'hui, je lierais à la norme HTML5 (mais je ne pense pas que HTML5 modifie cet aspect). Si vous cherchez simplement le nombre (par exemple, comment traduire © en '©'): d'abord, je vous recommande d'utiliser UTF-8 et d'écrire le caractère littéralement, c'est-à-dire de mettre © ou similaire dans votre source, car il est alors directement lisible par un humain (réponse de RibaldEddie). Sinon, le numéro est juste le point de code Unicode. shapecatcher.com vous permettra de dessiner le personnage dont vous avez besoin, – Thanatos

4

La beauté de l'encodage UTF-8 est que vous pouvez réellement inclure le caractère binaire. Vous n'avez pas besoin de l'encoder en tant qu'entité. Ainsi: ©

Oh, vous voulez juste connaître la différence entre les deux entités? Il n'y en a pas. L'un décrit l'octet en hexadécimal et l'autre en décimal. Spécifiez le même caractère - 169 est équivalent à hexadécimal A9.

+0

Par le "caractère binaire", voulez-vous dire que je pourrais juste copier le symbole de votre réponse et le coller dans mon Document HTML (ce qui signifie qu'il ressemblera au symbole dans le code) et, tant que c'est UTF-8, ça va? –

+0

Ceci. Quel est le point en utilisant UTF-8 si vous allez coder tout dans les entités? C'est ce que veut dire Unicode! – You

+0

Correct. Certains caractères doivent toujours être codés en entité, mais seulement ceux qui ont une signification sémantique en HTML, comme inférieur à et supérieur à. Mais le signe de copyright fonctionne juste (tm). – RibaldEddie