Есть ли причина НЕ устанавливать кодировку HTML в UTF-8? - PullRequest
3 голосов
/ 05 декабря 2011

Есть ли веская причина НЕ использовать UTF-8 в качестве кодировки в повседневной разработке?

IE: есть ли у следующего тега в <head>...</head> какие-либо недостатки?

<meta charset="utf-8">

Ответы [ 3 ]

3 голосов
/ 06 декабря 2011

Есть ли веская причина НЕ использовать UTF-8 в качестве кодировки в повседневной разработке?

Не совсем.Есть ниши, которые не так хорошо работают с UTF-8, как старые японские службы веб-почты и некоторые хитрые текстовые редакторы, которые все еще предпочитают кодовую страницу Windows ANSI, но они постепенно уходят, и большинство людей могут их игнорировать.

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

Хотя другиекодировки могут работать меньше, чем UTF-8, обычно не достаточно разницы, чтобы заботиться - или компенсировать потерю остальной части репертуара Unicode.UTF-16 может по-прежнему охватывать все, и теоретически может быть меньше для текста BMP, не относящегося к ASCII ... но для HTML, который неизменно заглушается дополнительной длиной всего текста ASCII, включая теги и пробелы.Кроме того, UTF-16 не очень хорошо работает в Интернете.

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

<meta charset="utf-8">

Это причудливый современный способ сказать это, но для более широкой поддержки в старых браузерах я бы все-таки пошел на:

<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />

Поскольку это намекает, вы фактически делаете вид, что HTTP-заголовок был отправлен снабор символов. Таким образом, вам также необходимо убедиться, что нет параметра real HTTP Content-Type ... charset, поскольку параметр реального заголовка превосходит мета-хак HTML.Директива Apache AddDefaultCharset иногда неразумно используется, чтобы дать вам charset, который вам может не понадобиться.

1 голос
/ 05 декабря 2011

Это действительно сводится к символам, которые вы отображаете на странице.

Вот хорошая статья SO-соучредителя Джоэла С. http://www.joelonsoftware.com/articles/Unicode.html

0 голосов
/ 05 декабря 2011

Это не имеет значения, так как большую часть времени будет игнорироваться, обычно вместо этого будет использоваться заголовок HTTP Content-Type. Я также думаю, что это будет игнорироваться в старых браузерах.

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