Должен ли я по-прежнему использовать HTML-сущности? Зачем? - PullRequest
22 голосов
/ 06 февраля 2009

Являются ли объекты HTML по-прежнему полезными или мне просто нужно создавать HTML-документы в кодировке UTF-8? Пожалуйста, объясните, почему.

Ответы [ 3 ]

29 голосов
/ 06 февраля 2009

Если кодировка установлена ​​правильно (и документ сохранен как UTF-8), вы сможете работать только с символами. От W3C:

Использование такой кодировки, как UTF-8, означает, что вы можете избежать необходимости в большинстве экранирований и просто работать с символами.

http://www.w3.org/International/questions/qa-escapes

Однако вам все равно нужно использовать сущности для специальных символов, например, больше / меньше чем.

8 голосов
/ 06 февраля 2009

Сущности полезны в файлах исходного кода программы (в программах, которые выводят HTML). Многие стандарты кодирования говорят, что файлы должны быть в простом ASCII. За исключением, конечно, файлов, которые на самом деле содержат текстовое содержимое - например, .po файлы с переводами.

Если у вас длинный файл с несколькими не-ASCII-символами внутри, то очень легко сохранить файл в неправильной кодировке, не заметив, что ваши символы испорчены.

Еще одна веская причина для использования не-ASCII символов - похожие персонажи. Можете ли вы определить разницу между следующими двумя строками кода:

print "<title>" + pagename + " – " + sitename + "</title>";
print "<title>" + pagename + " - " + sitename + "</title>";

Но при использовании сущностей разница очевидна:

print "<title>" + pagename + " &ndash; " + sitename + "</title>";
print "<title>" + pagename + " - " + sitename + "</title>";

Но вне файлов с исходным кодом программы UTF-8, безусловно, является подходящим способом.

5 голосов
/ 06 февраля 2009

По моему опыту, если ваши данные действительно UTF-8 и вы правильно сообщаете браузеру, что это UTF-8, тогда вам не нужно использовать сущности. За исключением таких вещей, как & gt ;, & lt ;, & quot; конечно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...