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


12

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 le saisir en tant que '& rarr;' au lieu de simplement mettre «→» dans le fichier HTML? Supposons que mon fichier HTML est codé et transmis dans un certain format Unicode.

Réponses:


10

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

Par exemple, nous avons une application Web qui utilise AJAX dans son sens littéral - nous l'utilisons pour charger des documents XML à la volée. Si le document XML n'a pas l'en- content-encodingtête correct (ou en manque du tout), alors tout caractère unicode (guillemets intelligents, longs tirets, même certains espaces spéciaux et le mot Café) fait tomber Internet Explorer sur son cul à chaque fois. La demande AJAX échoue et déclenche une erreur javascript.

Cependant, si nous effectuons un remplacement côté serveur de tous les caractères unicode avec leurs entités HTML, tout fonctionne très bien.

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


0

Cependant, si nous effectuons un remplacement côté serveur de tous les caractères unicode avec leurs entités HTML, tout fonctionne très bien.

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 corrects et repérez ces problèmes (en utilisant le mauvais en-tête) tôt, au lieu d'être confus lorsqu'ils surviennent plus tard.


7
En fait, chaque caractère unicode a une entité HTML appropriée.
Mark Henderson

Oh, mon mauvais, je pensais aux entités nommées. :)

0

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

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.