web-dev-qa-db-fra.com

Pourquoi utiliser des entités HTML au lieu de simplement mettre des caractères Unicode en HTML?

Disons que je veux mettre un caractère non fade dans un fichier HTML; par exemple, '→'. Y a-t-il une raison pour laquelle je devrais entrer en tant que "rarr"; au lieu de simplement '→' dans le fichier HTML? Supposons que mon fichier HTML soit codé, transmis dans un format Unicode.

12
Nick

Ces deux déclarations finales sont de grandes hypothèses.

Par exemple, nous avons une application Web qui utilise AJAX pour son sens littéral - nous l'utilisons pour charger des documents XML à la volée. Si le document XML n'a pas le bon en-tête content-encoding (ou s'il en manque un du tout), alors tous les caractères unicode (guillemets, gros tirets, voire des espaces spéciaux et le mot Café] rendent Internet Explorer. tomber sur son cul à chaque fois. La demande AJAX échoue et déclenche une erreur javascript.

Cependant, si nous remplaçons tous les caractères unicode par leurs entités HTML, côté serveur, tout fonctionne parfaitement.

Bien sûr, si votre fichier a les en-têtes de contenu corrects, cela ne devrait pas poser de problème à aucun navigateur moderne.

10
Mark Henderson

Pour ajouter à l'excellente réponse acceptée: dans l'ensemble, les fichiers ASCII sont beaucoup plus portables entre différents éditeurs.

0
Bobby Jack

Cependant, si nous remplaçons tous les caractères unicode par leurs entités HTML, côté serveur, tout fonctionne parfaitement.

Cela suppose que tous les caractères peuvent être remplacés par des entités HTML, ce qu’ils ne peuvent pas. Utilisez les en-têtes appropriés et identifiez ces problèmes (en utilisant le mauvais en-tête) plus tôt que prévu, au lieu d'être confus plus tard.

0
Kim