5 x кодировка utf 8. HTML кодировка

(коды от 0 до 127), т.е. одним байтом кодируются латинские буквы, цифры и специальные символы. Русские буквы (кириллица) представляются 16-битными (двухбайтными) кодами:

110XXXXX 10XXXXXX,

где X обозначены двоичные разряды для размещения кода символа в соответствии с таблицей UNICODE .

Юникод (англ. Unicode) - стандарт кодирования символов, позволяющий представить знаки почти всех письменных языков. Представляемые в юникоде символы кодируются целыми числами без знака. Эти числа будем называть кодами символов в юникоде или просто UNICODE . Юникод имеет несколько форм представления символов в компьютере: UTF-8, UTF-16 (UTF-16BE, UTF-16LE) и UTF-32 (UTF-32BE, UTF-32LE) . (Англ. Unicode transformation format - UTF).

Рассмотрим, как кодируется в UTF-8 буква Ж . Её UNICODE - 1046 10 или 0416 16 или 10000 010110 2 . UNICODE в двоичном виде разбивается на две части: пять левых бит и шесть правых. Левая часть дополняется до байта признаком 110 двухбайтного кода UTF-8 : 110 10000. К правой части приписываются два бита 10 признака продолжения многобайтного кода: 10 010110. Окончательно код буквы Ж в UTF-8 выглядит так:

110 10000 10 010110 2
или D0 96 16

Таким образом, русская буква кодируется дважды: сначала в 11-битный UNICODE , а затем - в 16-битный UTF-8.

В приведённой ниже таблице, кроме кодов UNICODE и UTF-8 в шестнадцатиричной системе счисления, даны коды UTF-8 в десятичной системе счисления и для сравнения коды кириллицы в кодировке CP-1251 , иначе называемой windovs-1251 .

Таблица кодов кириллицы в UTF-8
Символ UNICODE UTF-8 CP-1251
Шестн. Десят Шестн. Десят
А 0410 1040 D090 208 144 192
Б 0411 1041 D091 208 145 193
В 0412 1042 D092 208 146 194
Г 0413 1043 D093 208 147 195
Д 0414 1044 D094 208 148 196
Е 0415 1045 D095 208 149 197
Ж 0416 1046 D096 208 150 198
З 0417 1047 D097 208 151 199
И 0418 1048 D098 208 152 200
Й 0419 1049 D099 208 153 201
К 041A 1050 D09A 208 154 202
Л 041B 1051 D09B 208 155 203
М 041C 1052 D09C 208 156 204
Н 041D 1053 D09D 208 157 205
О 041E 1054 D09E 208 158 206
П 041F 1055 D09F 208 159 207
Р 0420 1056 D0A0 208 160 208
С 0421 1057 D0A1 208 161 209
Т 0422 1058 D0A2 208 162 210
У 0423 1059 D0A3 208 163 211
Ф 0424 1060 D0A4 208 164 212
Х 0425 1061 D0A5 208 165 213
Ц 0426 1062 D0A6 208 166 214
Ч 0427 1063 D0A7 208 167 215
Ш 0428 1064 D0A8 208 168 216
Щ 0429 1065 D0A9 208 169 217
Ъ 042A 1066 D0AA 208 170 218
Ы 042B 1067 D0AB 208 171 219
Ь 042C 1068 D0AC 208 172 220
Э 042D 1069 D0AD 208 173 221
Ю 042E 1070 D0AE 208 174 222
Я 042F 1071 D0AF 208 175 223
а 0430 1072 D0B0 208 176 224
б 0431 1073 D0B1 208 177 225
в 0432 1074 D0B2 208 178 226
г 0433 1075 D0B3 208 179 227
д 0434 1076 D0B4 208 180 228
е 0435 1077 D0B5 208 181 229
ж 0436 1078 D0B6 208 182 230
з 0437 1079 D0B7 208 183 231
и 0438 1080 D0B8 208 184 232
й 0439 1081 D0B9 208 185 233
к 043A 1082 D0BA 208 186 234
л 043B 1083 D0BB 208 187 235
м 043C 1084 D0BC 208 188 236
н 043D 1085 D0BD 208 189 237
о 043E 1086 D0BE 208 190 238
п 043F 1087 D0BF 208 191 239
р 0440 1088 D180 209 128 240
с 0441 1089 D181 209 129 241
т 0442 1090 D182 209 130 242
у 0443 1091 D183 209 131 243
ф 0444 1092 D184 209 132 244
х 0445 1093 D185 209 133 245
ц 0446 1094 D186 209 134 246
ч 0447 1095 D187 209 135 247
ш 0448 1096 D188 209 136 248
щ 0449 1097 D189 209 137 249
ъ 044A 1098 D18A 209 138 250
ы 044B 1099 D18B 209 139 251
ь 044C 1100 D18C 209 140 252
э 044D 1101 D18D 209 141 253
ю 044E 1102 D18E 209 142 254
я 044F 1103 D18F 209 143 255
Символы вне общего правила
Ё 0401 1025 D001 208 101 168
ё 0451 1025 D191 209 145 184

Влад Мержевич

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

Метатеги для поисковых механизмов

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

Два метатега предназначены специально для поисковых серверов: description (описание) и keywords (ключевые слова). Некоторые вебмастера добавляли в раздел keywords ключевые слова, которые не имеют никакого отношения к теме сайта, но зато пользовались определенным успехом среди посетителей поисковиков. Однако, через некоторое время, поисковые системы научились бороться с таким явлением и проверяют содержимое веб-страницы на соответствие заявленным ключевым словам.

Некоторые принципы, относящиеся к метатегам:

  • не включайте ключевые слова, которые не содержатся на ваших страницах;
  • не повторяйте ключевые слова;
  • используйте метатеги по их прямому назначению;
  • делайте описание и список ключевых слов различными для каждой страницы сайта с учетом содержимого.

description

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

Пример 1. Использование Description

description

keywords

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

Пример 2. Использование Keywords

keywords

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

Автозагрузка страниц

Чтобы автоматически загружать новый документ через определенный промежуток времени используется инструкция http-equiv="refresh" (пример 3).

. Для операционной системы Windows и кириллицы charset обычно принимает значение utf-8 или windows-1251 (пример 4).

Пример 4. Выбор текущей кодировки

Кодировка

Кириллица

Если указание кодировки отсутствует, браузер пытается сам определить, какой тип символов используется в документе и выбирает необходимую кодировку автоматически. Браузер не всегда может точно распознать язык веб-страницы и в некоторых случаях предлагает вьетнамскую кодировку вместо кириллицы. По этой причине лучше всегда указывать приведенную строчку. Тем не менее, возникают обстоятельства, когда указание кодировки может принести определенный вред. Например, веб-сервер автоматически использует перекодирование данных в KOI-8, а браузер, встретив параметр charset=windows-1251 , переводит текст в кодировку Windows. Получается двойное изменение символов, прочитать такой текст не просто. К счастью, подобная проблема уже отходит в прошлое, во всяком случае, ее легко можно выявить и нейтрализовать на уровне сервера.

Юникод поддерживает практически все существующие наборы символов. Наилучшей формой кодирования набора символов Юникода является UTF-8-кодировка. В ней реализована совместимость с ASCII, устойчивость к искажению данных, эффективность и простота обработки. Но обо всём по порядку.

Формы кодирования

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

В компьютерных системах целые числа хранятся в ячейках памяти размером 8 бит (1 байт), 16 или 32 бит. Каждая форма кодирования Юникода определяет, какая последовательность ячеек памяти представляет целое число, соответствующее конкретному символу. В стандарте представлены три различные формы кодирования символов Юникода: 8, 16 и 32-битными блоками. Соответственно, они носят название UTF-8, UTF-16 и UTF-32. Название UTF расшифровывается как формат преобразования Юникода. Каждая из трёх форм кодирования является равноправным средством представления символов Юникода, имеет преимущества в различных областях применения.

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

Принцип неналожения

Каждая из форм кодирования Юникода разработана с учётом недопустимости частичного наложения. Например, Windows-932 формирует символы из одного или двух байтов кода. Длина последовательности зависит от первого байта, поэтому значения лидирующего байта в последовательности из двух байтов и одиночного байта не пересекаются. Однако значения одиночного байта и замыкающего байта последовательности могут совпадать. Это означает, например, что при поиске символа D (код 44) можно ошибочно найти его входящим во вторую часть последовательности из двух байтов символа «Д» (код 84 44). Чтобы выяснить, какая последовательность является правильной, программа должна учесть предыдущие байты.

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

Формат преобразования Юникода позволяет избежать данной проблемы, потому что значения ведущей, замыкающей и одиночной единицы хранения информации не совпадают. Благодаря этому все кодировки Юникода подходят для поиска и сравнения, никогда не давая ошибочного результата из-за совпадения разных частей кода символов. Тот факт, что данные формы кодирования соблюдают принцип неналожения, отличает их от других многобайтовых восточноазиатских кодировок.

Другим аспектом непересечения является то, что каждый символ имеет чётко определяемые границы. При этом отпадает необходимость в сканировании неопределённого числа предыдущих символов. Данную особенность кодировок иногда называют самосинхронизацией. Искажение одной единицы кода введёт к искажению только одного символа, а окружающие символы остаются нетронутыми. В 8-битном формате преобразования, если указатель ссылается на байт, начинающийся с 10xxxxxx (в двоичной кодировке), для поиска начала символа потребуется от одного до трёх обратных переходов.

Согласованность

Консорциум Юникода в полной мере поддерживает все 3 формы кодировок. Важно не противопоставлять UTF-8 и Юникод, ведь все форматы преобразования - одинаково правомерные воплощения форм кодирования символов стандарта Юникод.

Байт-ориентация

Для представления символа UTF-32 понадобится одна 32-битная единица кода, которая совпадает с кодом Юникода. UTF-16 - от одной до двух 16-битных единиц. А UTF-8 использует до 4 байт.

Кодировка UTF-8 создана для совместимости с байт-ориентированными системами на основе ASCII. Большая часть существующего программного обеспечения и практика информационных технологий длительное время опирались на представление символов в виде последовательности байтов. Множество протоколов зависит от неизменности и использует либо избегает специальные управляющие символы. Простым способом адаптировать Юникод к таким ситуациям можно, применив 8-битное кодирование для представления символов Юникода, эквивалентных любому или управляющему символу. Для этого и предназначена кодировка UTF-8.

Переменная длина

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

ASCII

UTF-8-кодировка полностью поддерживает коды ASCII (0x00-0x7F). Это значит, что символы Юникода U+0000-U+007F конвертируются в единственный байт 0x00-0x7F UTF-8 и таким образом становятся неотличимыми от ASCII. Более того, чтобы избежать многозначности, значения 0x00-0x7F не используются больше ни в одном байте представления символов Юникода. Для кодирования неидеографических символов, отличных от ASCII, используется последовательность из двух байтов. Символы диапазона U+0800-U+FFFF представлены тремя байтами, а дополнительные с кодами больше U+FFFF требуют четырёх байтов.

Область применения

Кодировке UTF-8 обычно отдаётся предпочтение в протоколе HTML и ему подобным.

XML стал первым стандартом с полной поддержкой кодировки UTF-8. Организации, занимающиеся стандартизацией, тоже её рекомендуют. Проблема поддержки в адресах URL, отличных от ASCII-символов, была решена, когда консорциум W3С и инженерная группа IETF пришли к соглашению о кодировании всех исключительно в UTF-8.

Совместимость с ASCII облегчает переход к новому программному обеспечению. С UTF-8 работает большинство текстовых редакторов, в том числе JEdit, Emacs, BBEdit, Eclipse и "Блокнот" операционной системы Windows. Ни одна другая форма кодирования Юникода не может похвалиться такой поддержкой со стороны инструментальных средств.

Преимущество кодировки заключается в том, что она состоит из последовательности байтов. Со строками UTF-8 легко работать в C и других языках программирования. Это единственная форма кодирования, не требующая метки порядка байтов BOM или объявления кодировки в XML.

Самосинхронизация

В окружении, использующем 8-битную обработку символов, по сравнению с другими многобайтными кодировками, UTF-8 обладает следующими преимуществами:

  • Первый байт последовательности кода содержит информацию о его длине. Это повышает эффективность прямого поиска.
  • Упрощено нахождение начала символа, так как начальный байт ограничен фиксированным диапазоном значений.
  • Отсутствует пересечение значений байтов.

Сравнение преимуществ

UTF-8-кодировка компактна. Но при применении для кодирования восточноазиатских символов (китайских, японских, корейских, использующих знаки китайского письма) используются 3-байтные последовательности. Также UTF-8-кодировка уступает другим формам кодирования по скорости обработки. А двоичная сортировка строк даёт тот же результат, что и двоичная сортировка Юникода.

Схема кодировки символов

Схема кодировки символов состоит из формы кодирования символов и способа побайтного расположения единиц кода. Для определения схемы кодирования стандартом Юникода предусмотрено использование начальной метки порядка байтов (BOM, Byte order mark).

При включении BOM в UTF-8 функция метки ограничивается только указанием на использование формы кодирования. Проблемы определения порядка байтов у UTF-8 нет, так как её размер единицы кодирования равен одному байту. Использование BOM для данной формы кодирования не является ни обязательным, ни рекомендуемым. BOM может встречаться в текстах, конвертированных из других кодировок, использующих метку порядка байтов, или для сигнатуры кодировки UTF-8. Представляет собой последовательность из 3 байтов EF 16 BB 16 BF 16 .

Как задать кодировку UTF-8

В UTF-8 устанавливается с помощью следующего кода:

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

В PHP кодировка UTF-8 задаётся с помощью функции header() в самом начале файла после задания значения уровня вывода ошибок:

error_reporting(-1);

Charset=utf-8");

Для подключения к базам данных MySQL кодировка UTF-8 устанавливается так:

mysql_set_charset("utf8");

В CSS-файлах кодировка символов UTF-8 указывается так:

@charset "utf-8";

При сохранении файлов всех типов выбирается кодировка UTF-8 без BOM, иначе сайт работать не будет. Для этого в программе DreamWeave нужно выбрать пункт меню «Модификации - Свойства страницы - Заголовок/Кодировка», изменить кодировку на UTF-8. Затем следует перезагрузить страницу, убрать галочку из пункта «Подключить Юникод сигнатуры (BOM)» и применить изменения. Если какой-либо текст на странице или в базе данных был введён другой формой кодирования, то его нужно ввести заново или перекодировать. При работе с регулярными выражениями обязательно использовать модификатор u.

В текстовом редакторе Notepad++, если кодировка отлична от UTF-8, через пункт меню «Преобразовать в UTF-8 без BOM» изменить кодировку и сохранить в кодировке UTF-8.

Альтернативы нет

В условиях глобализации, когда политические и языковые границы стираются, наборы символов, которые имеют местные особенности, становятся малопригодными. Юникод является единственным набором символов с поддержкой всех локализаций. А UTF-8 - пример правильной реализации Юникода, которая:

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

С появлением UTF-8 дискуссии о том, какая форма кодирования или набор символов лучше, стали бессмысленны.

Юникод (по-английски Unicode) - это стандарт кодирования символов. Проще говоря, это таблица соответствия текстовых знаков ( , букв, элементов пунктуации ) двоичным кодам. Компьютер понимает только последовательность нулей и единиц. Чтобы он знал, что именно должен отобразить на экране, необходимо присвоить каждому символу свой уникальный номер. В восьмидесятых, знаки кодировали одним байтом, то есть восемью битами (каждый бит это 0 или 1). Таким образом получалось, что одна таблица (она же кодировка или набор) может вместить только 256 знаков. Этого может не хватить даже для одного языка. Поэтому, появилось много разных кодировок, путаница с которыми часто приводила к тому, что на экране вместо читаемого текста появлялись какие-то странные кракозябры. Требовался единый стандарт, которым и стал Юникод. Самая используемая кодировка - UTF-8 (Unicode Transformation Format) для изображения символа задействует от 1 до 4 байт.

Символы

Символы в таблицах Юникода пронумерованы шестнадцатеричными числами. Например, кириллическая заглавная буква М обозначена U+041C. Это значит, что она стоит на пересечении строки 041 и столбца С. Её можно просто скопировать и потом вставить куда-либо. Чтобы не рыться в многокилометровом списке следует воспользоваться поиском. Зайдя на страницу символа, вы увидите его номер в Юникоде и способ начертания в разных шрифтах. В строку поиска можно вбить и сам знак, даже если вместо него отрисовывается квадратик, хотя бы для того, чтобы узнать, что это было. Ещё, на этом сайте есть специальные (и - случайные) наборы однотипных значков, собранные из разных разделов, для удобства их использования.

Стандарт Юникод - международный. Он включает знаки почти всех письменностей мира. В том числе и тех, которые уже не применяются. Египетские иероглифы, германские руны, письменность майя, клинопись и алфавиты древних государств. Представлены и обозначения мер и весов, нотных грамот, математических понятий.

Сам консорциум Юникода не изобретает новых символов. В таблицы добавляются те значки, которые находят своё применение в обществе. Например, знак рубля активно использовался в течении шести лет прежде чем был добавлен в Юникод. Пиктограммы эмодзи (смайлики) тоже сначала получили широкое применение в Япониии прежде чем были включены в кодировку. А вот товарные знаки, и логотипы компаний не добавляются принципиально. Даже такие распространённые как яблоко Apple или флаг Windows. На сегодняшний день, в версии 8.0 закодировано около 120 тысяч символов.

В этой статье я постараюсь поставить все точки над «и» (а так же над «i») в вопросе выбора кодировки для создаваемой HTML-страницы.

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

Или в среде отладки (например, локальная среда разработки « ») все нормально, а с хостинга опять они, кракозябры проклятые, нагло на меня смотрят.

С движками сколько мучений было. Вдруг, непонятно почему, родные русские буквы превращаются в …

Сейчас мы с этим делом подробно разберемся и вы будете четко знать в какую кодировку сохранять HTML-страницу и посредством каких инструментов .

Для укрепления нашего взаимопонимания определимся с понятием кодировка . Так вот, кодировка - это таблица соответствия машинных кодов и символов алфавита. Есть какая-то последовательность машинных символов, которую умный компьютер, в соответствии с выбранной кодовой таблицей, заменяет на понятные нам буквы.

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

Вся эта путаница и привела к появлению кракозябров. Например, если слово «Вопрос », набранное в кодировке windows-1251, отобразить кодировкой KOI8-R, получится слово «бНОПНЯ ».

Слава Богу, 90-е годы уже далеко позади и из пяти бредокодировок осталось всего 2-е нормальных. Но этого вполне достаточно, чтобы начинающий веб-мастер заблудился в двух соснах. Ничего, не переживайте, сейчас я вас выведу из этого леса!

На данный момент выбор для кодировки HTML-документа стоит между windows-1251 и utf-8. А теперь внимание: utf-8 гораздо богаче, мощнее и за ней будущее. Так что наши HTML-файлы мы будем сохранять именно в utf-8.

Обосную свои слова;). UTF-8 содержит в своей таблице соответствия такие знаки, как ↓. А в windws-1251 вместо этих символов вот что: > . А еще в utf-8 есть знак "евро"; а еще utf-8 позволяет в одном HTML-файле совмещать кучу разнообразных специфических символов, используемых в таких языках как грузинский, иврит, китайский, японский; а еще utf-8 в кодировках HTML - это правило хорошего тона.

Надеюсь я вас убедил и вы будете использовать Юникод (кстати «utf-8» и «Юникод» - это синонимы или, если быть более точным, utf-8 - это одна из кодировок семейства Юникод, которая снискала популярность в среде веб-разработчиков).

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

Инструменты для работы с кодировками HTML файлов

Собственно, их всего три:

  • PSPad . Бесплатный текстовый редактор, мой любимый.
  • . Еще один хороший текстовый редактор и тоже бесплатный.
  • Dreamweaver. Ну с Dreamweaver-ом вы с вами знакомы из моих .

Загружаем какой-то HTML-файл в PSPad. И как же нам понять, что за кодировка у загруженного подопытного? Очень просто в строке состояния (внизу) все четко написано.

Кодировка открытого HTML-файла windows-1251

А теперь, создавая новый HTML-документ, позаботимся о его кодировке.

Идем в меню моего любимого PSPad-а . Нас интересует пункт Формат . В нем-то мы и поставим галку напротив кодировки utf-8.

А так кодировка будующего файла - windows-1251

Теперь о том как изменить кодировку файла HTML . Да оказывается очень просто:

Нужно кликнуть по требуемой кодировке в пункте меню Формат и кодировка сменится. После этого сохраняйте файл, он перекодирован, дело сделано.

Что касается Notepad++ все очень похоже на вышеописанную ситуацию. Только для работы с кодировками нужно использовать пункт меню Кодировки.

Вся разница заключается в том, что в случае Notepad++ появляются, специально разработанные для преобразования кодировок, пункты меню Преобразовать.. . (лишние на мой взгляд, в PSPad все проще и поэтому я им пользуюсь). Соответственно, именно по ним и нужно кликать при желании поменять кодировки у нашего HTML-файла.

Кроме всего прочего, при сохранении в utf-8 у нас есть выбор: без BOM или с BOM . Нам, как веб-мастерам, нужно использовать кодировку UTF-8 (без BOM) .

Вот что нам ответит Википедия на вопрос «что такое BOM »

Для определения формата представления Юникода в текстовом файле используется приём, по которому в начале текста записывается символ U+FEFF (неразрывный пробел с нулевой шириной), также именуемый меткой порядка байтов (англ. Byte Order Mark, BOM). Этот способ позволяет различать UTF-16LE и UTF-16BE, поскольку символа U+FFFE не существует. Также он иногда применяется для обозначения формата UTF-8, хотя к этому формату и неприменимо понятие порядка байтов.

Если прочитать приведенный текст 10 раз, почесать затылок, то становится понятно: для utf-8 BOM нам НЕ нужен . Кроме того, если сохранить файл с php-скриптом в кодировку utf-8 с BOM , то он не будет работать, потому что обработчик не поймет, что это за ерунда такая написана в начале файла-скрипта (я имею ввиду тот самый неразрывный пробел с нулевой шириной).

Так-так, осталось пристально взглянуть на Dreamweaver .

Создавая новый файл, обращайте внимание на то, в какой кодировке он будет создан. Для этого в окне создания нового документа File → New (Ctrl+N) воспользуйтесь кнопкой Preferences ...

И посмотрите, что задано в качестве кодировки по умолчанию:

Кодировка создаваемого HTML-файла по умолчанию в Dreamweaver

Перекодировать открытый HTML-файл в Dreamweaver можно в диалоге Page Properties, который запускается из меню Modify Page Properties (Ctrl + J).

Выбирайте требуемую кодировку, нажимайте ОК и все, задача по перекодированию выполнена (а вот BOM все так же ненужен, не ставьте галку).

Определение кодировки браузерами

Итак, наш HTML-файл сохранен в выбранную нами кодировку. Теперь давайте разберемся с вопросом: каким образом браузер узнает о применяемой в данном HTML-файле кодировке?

Здесь есть три варианта:

1. Мы сами сообщаем браузеру о том, какая кодировка установлена для данного HTML файла. Делается это посредством META-тега

В приведенном примере браузеру дается указание, что загруженный HTML-файл сохранен в кодировке utf-8 .

Если HTML-файл сохранен в кодировку windows-1251, то:

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

Полный HTML выглядит следующим образом (привожу его для понимания вопроса «в каком месте указывается META-тег с директивой кодировки» внимание на 4-ю строку):

Untitled Document Ну и т.д.

2. При помощи файла.htaccess. Иногда сервер насильно передает заголовки для загружаемых HTML-файлов и сообщает браузеру кодировку по умолчанию. В этом случае браузер не обращает внимания на директивы в META-теге, а отображает HTML-файл в той кодировки, которую сообщил сервер. Чтобы файл загружалсяв той кодировке, которая нужна вам (часто хостинг насильно указывает кодировку windows-1251), в корне хостинг-директории создается файл с именем «.htaccess».

Файл этот предназначен для дополнительной конфигурации сервера. Действие.htaccess-директив распространяется на все файлы и подкаталоги, которые находятся в том каталоге, куда вы сохранили файл.htaccess.

Создать этот файл можно, например, в Total Commander-е, нажав горячее сочетание клавиш Shift+F4 и указав имя создаваемому файлу .htaccess . Далее в текстовом редакторе указываются директивы дополнительных настроек кодировки по умолчанию.

Для HTML-файлов в кодировке utf-8 в.htaccess нужно написать одну строку:

AddDefaultCharset UTF-8

Для HTML-файлов в кодировке Windows-1251 :

AddDefaultCharset Windows-1251

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

Charsetdisable on AddDefaultCharset Off

Если и это не дало результата, то просто спросите у своего хостера, чего вам делать, чтобы отключить кодировку по умолчанию:). Все это зависит от конкретных настроек сервера у хостинг-провайдера.

3. PHP-инструкция, указывающая кодировку по умолчанию. В файле, который нужно отобразить в желаемой кодировке, не смотря на настройки сервера хостинг-провайдера, в самом начале указывается директива с php-кодом:

Этот php-код отправит заголовок сервера с указанием кодировки по умолчанию для браузера. В приведенном примере, для отображения страницы, будет применяться кодировка utf-8.

Против такого лома, обычно, приемов в настройках сервера хостинг-провайдера не остается.

Хочу заметить, что для обработки php-инструкций сервером, html-файл должен иметь расширение .php (например index.php).

Есть еще вопросы по кодировкам? Пишите в комментарии. Нужно решить эти проблемы раз и на всегда 🙂



Есть вопросы?

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: