Зачем использовать сущности HTML вместо простого помещения символов Unicode в HTML?

12

Допустим, я хочу поместить не пустой символ в файл HTML; например, «→». Есть ли причина, по которой я должен вводить это как '& rarr;' вместо того, чтобы просто поставить «→» в HTML-файл? Предположим, мой HTML-файл закодирован и передан в каком-то формате Unicode.

Ник
источник

Ответы:

10

Эти два последних утверждения - большие предположения.

Например, у нас есть веб-приложение, которое использует AJAX в его буквальном смысле - мы используем его для загрузки документов XML на лету. Если XML-документ не имеет правильного content-encodingзаголовка (или вообще не имеет его ), то любые символы Юникода (умные кавычки, длинные тире, даже некоторые специальные пробелы и слово Café) заставляют Internet Explorer каждый раз падать на задницу. Запрос AJAX просто терпит неудачу и запускает ошибку JavaScript.

Однако, если мы сделаем замену всех символов Юникода на стороне сервера их сущностями HTML, все будет работать нормально.

Конечно, если ваш файл имеет правильные заголовки содержимого, это не должно быть проблемой для любого современного браузера.

Марк Хендерсон
источник
0

Однако, если мы сделаем замену всех символов Юникода на стороне сервера их сущностями HTML, все будет работать нормально.

Это предполагает, что все символы могут быть заменены HTML-сущностями, чего они не могут. Используйте правильные заголовки и выявляйте эти проблемы (используя неправильный заголовок) рано, вместо того, чтобы запутаться, когда они возникают позже.


источник
7
На самом деле, каждый символ Юникода имеет соответствующую сущность HTML.
Марк Хендерсон
О, плохо, я думал о названных лицах. :)
0

Просто чтобы добавить к превосходному принятому ответу: в целом, файлы ASCII гораздо более переносимы в различных редакторах.

Бобби Джек
источник