2014-01-27 5 views
1

Я бразильский и работаю/живу здесь. Для тех, кто не знает, у португальца много слов с акцентированными буквами. И я также знаю, что если вы неправильно работаете с charset, все ваши акцентированные буквы становятся мусором при рендеринге в браузере.Неправильно ли установить тип содержимого веб-страницы?

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

Formulário 
Relatório 
Exclusão 

я, зная, что вы можете установить кодировку веб-страницы как на сервере и клиенте, делал это в моих веб-страницах (BTW мы «ве работал с ASP.NET WebForms) ...

<%@ Page (...) ContentType="text/html; charset=utf-8" %> 

, а затем, в <head>:

<meta charset="utf-8" /> 

Но мой хозяин увидел это и сказал, что это плохая практика. Я немного искал Google и не нашел ресурсов, говоря, что это, по сути, плохая практика. И было несколько раз, когда мой босс сказал, что хорошая практика была плохой. Затем он сказал мне заменить все мои акцентированные письма своими амперсандами. Если это действительно лучшая практика, я сделаю это.

Таким образом, TL; DR: Лучше ли установить тип содержимого веб-страницы или использовать шаблон амперсанда?

ответ

2

W3C имеет an article on character encoding, что весьма полезно. Их взять на это в значительной степени:

Вы всегда должны указывать кодировку, используемую для HTML или XML-страницы. Если вы этого не сделаете, вы рискуете, что символы в вашем содержимом неверно интерпретированы. Это не просто проблема чтения человеком, но все больше машин должны понимать ваши данные.

Далее, в соответствии с MDN article на <meta> элемент, это хорошая практика, чтобы указать кодировку, так как она защищает пользователей от некоторых кросс-сценариев атак:

Это хорошая практика, и настоятельно рекомендуется определить символ , используя этот атрибут. Если для страницы не задан набор символов, , некоторые методы перекрестного скриптинга могут стать практичными для нанесения вреда пользователю страницы , например, методу перекрестного сценария UTF-7. Всегда установка этого мета будет защищать от этих рисков.

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

+0

Отличный ответ в значительной степени подкреплен. Могу ли я считать это «подход ContentType - лучшая практика»? (Это был мой вывод, но я вижу, что я немного предвзятый об этом) –

+1

@ AndréLeria Да, по-моему, определение типа контента - лучшая практика, и хотя их могут быть редкие случаи, когда это невозможно, общая мнение, похоже, заключается в том, что ii - хорошая практика для этого. –

2

«лучше» несколько субъективно. Есть плюсы и минусы для обоих подходов.

Использование толкового кодировки символов:

  • дает вам более читаемый код
  • Дает меньший код

Использование мнемоники:

  • означает, что вы не имеете позаботиться о кодировании
  • Позволяет копировать страницу где-то с неправильными заголовками HTTP и все еще работает
+0

Мне понравилось первое предложение. Может быть, это объясняет, почему мой босс видит много плохих практик как «лучше». –

Смежные вопросы