Указать кодировку страницы. HTML кодировка. В какую кодировку сохранять web-страницу

Позже ASCII была расширена (изначально она не использовала все 8 бит), поэтому появилась возможность использовать уже не 128, а 256 (2 в 8 степени) различных символов, которые можно закодировать в одном байте информации.
Такое усовершенствование позволило добавлять в кодировку ASCII символы национальных языков разных стран, помимо уже существующей латиницы.
Вариантов расширенной кодировки ASCII существует очень много по причине того, что языков в мире тоже немало. Думаю, что многие из вас слышали о такой кодировке, как KOI8 (Код Обмена Информацией, 8 бит) — это тоже расширенная кодировка ASCII . KOI8 включала в себя цифры, буквы латинского и русского алфавита, а также знаки пунктуации, спецсимволы и псевдографику.

Кодировка ISO

Организация Международных стандартов (International Standards Organization) создала диапазон кодировок для различных алфавитов/языков.

Кодировки серии ISO 8859

Кодировка Описание
ISO 8859-1 (Latin-1) Расширенная латиница, включающая символы большинства западноевропейских языков (английский, датский, ирландский, исландский, испанский, итальянский, немецкий, норвежский, португальский, ретороманский, фарерский, шведский, шотландский (гэльский) и частично голландский, финский, французский), а также некоторых восточноевропейских (албанский) и африканских языков (африкаанс, суахили). В Latin-1 отсутствуют знак евро и заглавная буква Ÿ. Эта кодовая страница считается кодировкой по умолчанию для HTML-документов и сообщений электронной почты. Также этой кодовой странице соответствуют первые 256 символов Юникода.
ISO 8859-2 (Latin-2) Расширенная латиница, включающая символы центральноевропейских и восточноевропейских языков (боснийский, венгерский, польский, словацкий, словенский, хорватский, чешский). В Latin-2, как и в Latin-1, отсутствуют знак евро.
ISO 8859-3 (Latin-3) Расширенная латиница, включающая символы южноевропейских языков (мальтийский, турецкий и эсперанто).
ISO 8859-4 (Latin-4) Расширенная латиница, включающая символы североевропейских языков (гренландский, эстонский, латышский, литовский и саамские языки).
ISO 8859-5 (Latin/Cyrillic) Кириллица, включающая символы славянских языков (белорусский, болгарский, македонский, русский, сербский и частично украинский).
ISO 8859-6 (Latin/Arabic) Символы, используемые в арабском языке. Символы других языков с письмом на основе арабского не поддерживаются. Для корректного отображения текста в кодировке ISO 8859-6 требуется поддержка двунаправленного письма и контекстно-зависимых форм символов.
ISO 8859-7 (Latin/Greek) Символы современного греческого языка. Может использоваться также для записи древнегреческих текстов в монотонической орфографии.
ISO 8859-8 (Latin/Hebrew) Символы современного иврита. Используется в двух вариантах: с логическим порядком следования символов (требует поддержки двунаправленного письма) и с визуальным порядком следования символов.
ISO 8859-9 (Latin-5) Вариант Latin-1, в котором редко используемые символы исландского языка заменены на турецкие. Используется для турецкого и курдского языков.
ISO 8859-10 (Latin-6) Вариант Latin-4, более удобный для скандинавских языков.
ISO 8859-11 (Latin/Thai) Символы тайского языка.
ISO 8859-13 (Latin-7) Вариант Latin-4, более удобный для балтийских языков.
ISO 8859-14 (Latin-8) Расширенная латиница, включающая символы кельтских языков, таких как шотландский (гэльский) и бретонский.
ISO 8859-15 (Latin-9) Вариант Latin-1, в котором редко используемые символы заменены на необходимые для полной поддержки финского, французского и эстонского языков. Кроме того, в Latin-9 был добавлен знак евро.
ISO 8859-16 (Latin-10) Расширенная латиница, включающая символы южноевропейских и восточноевропейских (албанский, венгерский, итальянский, польский, румынский, словенский, хорватский), а также некоторых западноевропейских языков (ирландский в новой орфографии, немецкий, финский, французский). Как и в Latin-9, в Latin-10 был добавлен знак евро.

Для документов на английском и большинстве других западноевропейских языков, широко поддерживается кодирование ISO-8859-1 .

В HTML ISO-8859-1 является кодировкой по умолчанию (в XHTML и в HTML5 кодировкой по умолчанию является UTF-8).
При использовании кодировки страницы, отличной от ISO-8859-1, вам необходимо указать это в теге .

Для HTML4:

Для HTML5:

Примером ANSI-кодировки является всем известная Windows-1251 .

Windows-1251 выгодно отличается от других 8 битных кириллических кодировок (таких как CP866 и ISO 8859-5) наличием практически всех символов, использующихся в русской типографике для обычного текста (отсутствует только знак ударения). Она также содержит все символы для других славянских языков: украинского, белорусского, сербского, македонского и болгарского.
Ниже приведены десятичные значения символов кодировки Windows-1251 .

Для отображения символов таблицы в HTML-документе воспользуйтесь следующим синтаксисом:

&# + код + ;

Кодировка Windows-1251 (CP1251)

.0 .1 .2 .3 .4 .5 .6 .7 .8 .9 .A .B .C .D .E .F

8.
Ђ
402
Ѓ
403

201A
ѓ
453

201E

2026

2020

2021

20AC

2030
Љ
409

2039
Њ
40A
Ќ
40C
Ћ
40B
Џ
40F

9.
ђ
452

2018

2019

201C

201D

2022

2013
-
2014

2122
љ
459

203A
њ
45A
ќ
45C
ћ
45B
џ
45F

A.

A0
Ў
40E
ў
45E
Ј
408
¤
A4
Ґ
490
¦
A6
§
A7
Ё
401
©
A9
Є
404
«
AB
¬
AC
­
AD
®
AE
Ї
407

B.
°
B0
±
B1
І
406
і
456
ґ
491
µ
B5

B6
·
B7
ё
451

2116
є
454
»
BB
ј
458
Ѕ
405
ѕ
455
ї
457

C.
А
410
Б
411
В
412
Г
413
Д
414
Е
415
Ж
416
З
417
И
418
Й
419
К
41A
Л
41B
М
41C
Н
41D
О
41E
П
41F

D.
Р
420
С
421
Т
422
У
423
Ф
424
Х
425
Ц
426
Ч
427
Ш
428
Щ
429
Ъ
42A
Ы
42B
Ь
42C
Э
42D
Ю
42E
Я
42F

E.
а
430
б
431
в
432
г
433
д
434
е
435
ж
436
з
437
и
438
й
439
к
43A
л
43B
м
43C
н
43D
о
43E
п
43F

F.
р
440
с
441
т
442
у
443
ф
444
х
445
ц
446
ч
447
ш
448
щ
449
ъ
44A
ы
44B
ь
44C
э
44D
ю
44E
я
44F

Кодировки стандарта UNICODE

Юникод (англ. Unicode) — стандарт кодирования символов, позволяющий представить знаки почти всех письменностей мира, и специальных символов. Представляемые в юникоде символы кодируются целыми числами без знака. Юникод имеет несколько форм представления символов в компьютере: UTF-8, UTF-16 (UTF-16BE, UTF-16LE) и UTF-32 (UTF-32BE, UTF-32LE). (Англ. Unicode transformation format - UTF).
UTF-8 — это в настоящее время распространённая кодировка, которая нашла широкое применение в операционных системах и веб-пространстве. Текст, состоящий из символов Unicode с номерами меньше 128 (область с кодами от U+0000 до U+007F), содержит символы набора ASCII с соответствующими кодами. Далее расположены области знаков различных письменностей, знаки пунктуации и технические символы. Под символы кириллицы выделены области знаков с кодами от U+0400 до U+052F, от U+2DE0 до U+2DFF, от U+A640 до U+A69F.

Кодировка UTF-8 является универсальной и имеет внушительный резерв на будущее. Это делает ее наиболее удобной кодировкой для использования в интернете.



Please enable JavaScript to view the

При неправильной кодировке весь сайт или его часть отображаются в виде «кряпозяблов», т.е. непонятных символов, делающих текст нечитаемым. Такая ситуация может возникнуть при неверной настройки кодировки веб-сервера или при отсутствии настроек. Рассмотрим возможные варианты и способы устранения проблем

Неправильная кодировка HTML страниц

Создадим тестовый файлик:

Sudo gedit /var/www/html/encoding.html

Скопируем в него:

Проверка кодировки

Откроем этот файл в браузере

Как можно видеть, кодировка браузером определена неправильно:

Имеется несколько способов исправить эту ситуацию. Начнём с самого простого - явно указать кодировку для веб-страницы. Это делается метатегом, который должен быть расположен внутри тэга head :

Добавим эту строку к нашему тестовому файлику, чтобы получилось так:

Проверка кодировки

Тестовый файл для проверки кодировки

Как мы можем убедиться на следующем скриншоте, проблема решена:

Если кодировка вашего файла отличается от UTF-8 , то вместо неё поставьте windows-1251 или ту, которая соответствует кодировке веб-страницы. Чтобы научиться определять кодировку файлов, посмотрите .

Это был самый простой способ исправления проблемы с кодировкой - без изменения настроек сервера.

Вернём наш тестовый файл в исходное состояние и продолжим изучение способов указания кодировки.

Если файлы .htaccess включены настройками Apache, то эти файлы можно использовать чтобы указывать кодировку отправляемых веб-сервером страниц. Чтобы включить поддержку файлов .htaccess в конфигурационном файле Apache (/etc/apache2/apache2.conf ) найдите группу строк

Options Indexes FollowSymLinks AllowOverride None Require all granted

И в ней замените

AllowOverride None

AllowOverride All

После этого сервер нужно перезапустить.

Sudo systemctl restart apache2.service

Файл .htaccess должен быть размещён в той же директории, что и сайт. Мой сайт размещён в корневой директории веб-сервера. Если у вас также, то теперь в папке /var/www/html/ создайте файл .htaccess и добавьте в него директиву AddDefaultCharset после которой укажите желаемую кодировку. Примеры

AddDefaultCharset UTF-8

AddDefaultCharset windows-1251

Можно указать кодировку, которая будет применена только к файлам определённого формата:

AddCharset utf-8 .atom .css .js .json .rss .vtt .xml

Набор файлов может быть любым, например:

AddCharset utf-8 .html .css .php .txt .js

Следующий вариант является альтернативным и также позволяет устанавливать кодировку для файлов определённого типа, для него нужно, чтобы был включён mod_headers :

Header set Content-Type "text/html; charset=utf-8"

Ещё один вариант, который также можно использовать в файле .htaccess для установки кодировки UTF-8:

IndexOptions +Charset=UTF-8

Если сайт на PHP, то дополнительно может понадобиться продублировать кодировку с php_value default_charset :

AddDefaultCharset windows-1251 php_value default_charset "cp1251"

Можно вместо создания файла.htaccess установить кодировку в конфигурационном файле веб-сервера. Для Apache CentOS/Fedora это файл httpd.conf, а на Debian/Ubuntu это файл apache2.conf. Добавьте следующую строку для установки кодировки и перезапустите веб-сервер, чтобы изменения вступили в силу:

AddDefaultCharset UTF-8

Как установить UTF-8 кодировку в PHP

В PHP скрипте для установки кодировки используется header , например:

Header("Content-Type: charset=utf-8");

Обычно вместе с кодировкой также указывают тип содержимого (в примере вариант для HTML страницы):

Header("Content-Type: text/html; charset=utf-8");

Ещё один вариант для RSS ленты:

Header("Content-type: text/xml; charset=utf-8");

Помните, что функция header должна быть вызвана перед любым выводом в браузер. В противном случае (если вывод в браузер уже был сделан), то уже были отправлены и заголовки. Очевидно, что в этом случае их уже невозможно поменять. Если в браузер было выведено сообщение об ошибке, то заголовки также уже были отправлены и использование header вызовет ошибку. Для проверки, были ли уже отправлены заголовки, используйте headers_sent .

Описанный способ работает только когда PHP скрипт полностью генерирует содержимое страницы. Статические страницы (такие как html) вы должны сохранять в кодировке utf-8. Большинство веб серверов обратят внимание на кодировку файла и добавят соответствующий заголовок. На самом деле, сохранение PHP файла в кодировке utf-8 приведёт к такому же результату.

Неправильная кодировка результатов из базы данных MySQL

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

Нужно начать с определения кодировки ваших таблиц. Можно посмотреть в phpMyAdmin :

Обратите внимание на столбец «Сравнение », запись «utf8_unicode_ci » означает, что используется кодировка UTF-8 .

Можно подключиться к СУБД MySQL и проверить кодировку таблиц без phpMyAdmin. Для этого:

Mysql -u root -p

Если вы забыли имя базы данных, то выполните команду:

SHOW DATABASES;

Предположим, я хочу посмотреть кодировку для таблиц в базе данных information_schema

USE information_schema;

Если вы забыли имя таблиц, выполните:

SHOW FULL COLUMNS FROM имя_таблицы;

Например:

SHOW FULL COLUMNS FROM GLOBAL_STATUS;

Вы увидите примерно следующее:

Смотрите столбец Collation . В моём случае там utf8_general_ci , это, как и utf8_unicode_ci , кодировка UTF-8 . Кстати, если вы не знаете в чём разница между кодировками utf8_general_ci , utf8_unicode_ci , utf8mb4_general_ci , utf8mb4_unicode_ci , а также какую кодировку выбрать для базы данных MySQL, то посмотрите .

Теперь, когда мы узнали кодировку (в моём случае это UTF-8), то при каждом подключении к СУБД MySQL нужно выполнять последовательно запросы:

SET NAMES UTF8 SET CHARACTER SET UTF8 SET character_set_client = UTF8 SET character_set_connection = UTF8 SET character_set_results = UTF8

В PHP это можно сделать примерно так:

$this->mysqli = new mysqli($server, $username, $password, $basename); if ($this->mysqli->connect_error) { $this->errorHandler_c->logError(1, "Connect Error (" . $this->mysqli->connect_errno . ") " . $this->mysqli->connect_error, $_SERVER ["REQUEST_URI"]); } $this->mysqli->query("SET NAMES UTF8"); $this->mysqli->query("SET CHARACTER SET UTF8"); $this->mysqli->query("SET character_set_client = UTF8"); $this->mysqli->query("SET character_set_connection = UTF8"); $this->mysqli->query("SET character_set_results = UTF8");

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

Изменение кодировки файлов

Если вы решили пойти другим путём и вместо установки новой кодировки изменить кодировку ваших файлов, то посмотрите статью « ». В ней рассказано, как узнать текущую кодировку файлов и как конвертировать файлы в любую кодировку (не только UTF-8).

Как узнать, какую кодировку отправляет сервер

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

Curl URL -s -o /dev/null -D /dev/stdout | grep -E "charset"

В ней вместо URL вставьте реальный адрес проверяемого сайта. Если сайт использует HTTPS, то укажите адрес сайта вместе с протоколом, например

Curl https://softocracy.ru -s -o /dev/null -D /dev/stdout | grep -E "charset"

Какую кодировку выбрать для веб-сайта

Довольно часто начинающие блоггеры, и не только начинающие, сталкиваются с проблемой кодировки страницы html. Когда вместо текста и читаемых символов выводятся непонятные КРАКОЗЯБРЫ. Именно так называются символы не соответствующие тем которые должны быть выведены на страницу. Откуда же появляются непонятные иероглифы?

Чтобы это понимать, нужно разобраться что такое- html кодировка страницы. Любой текст на компьютере представляется в виде набора байтов. В каждом из этих байтов определенным кодом – закодирован только один единственный символ. Чтобы правильно расшифровать или же раскодировать набор байтов и представить его в понятном человеку виде, браузеру нужно провести соответствие с одной из кодовых таблиц.

Базовой кодировкой является ASCIIкодировка, которая содержит в себе коды 128 символов латинского алфавита и специальные символы (скобки, решетки и т.д.). Далее появились первые русскосимвольные кодировки CP866 и KOI8-R, а из них вышла известная сегодняшним веб- мастерам кодировка windows-1251. Даже не смотря на то, что все эти кодировки призваны для отображения русского текста, они все отличаются друг от друга кодами.

Если текст писался в кодировке CP866, а браузер пытается раскодировать ее с помощью таблицы кодов windows-1251, то в результате мы получим не читаемые слова. Кроме названий тех кодировок, которые я здесь привел, существует еще великое множество котировок. С таким обилием кодовых таблиц образовалась проблема совместимости кодировок. Очень актуально встал вопрос создания универсальной кодировки. На сегодняшний день изобретена универсальная кодировка utf-8. При программировании сайта есть четыре момента которые требуют соблюдения единого стандарта кодирования текста.

  • Кодировки скриптов.
  • Кодировка таблиц MySQL.
  • Кодировка самой HTML страницы.
  • Локаль используемая браузером пользователя.

Во всех этих составляющих сайта, должна использоваться единая кодировка- желательно utf-8, ведь она универсальная. Если нажать сочетание клавиш CTRL+ U можно посмотреть код страницы, в котором видно, какая кодировка используется для данного документа.

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

Как поменять кодировку?

Для устранения ошибок и проблем с кодировкой Вашего блога используем FTP- клиент . С его помощью копируем файл wp- config.php на «Рабочий стол» Вашего компьютера и открываем с помощью текстового редактора Notepad++. В этом файле содержится информация Вашего блога- включая пароли, кодировку базы данных и другое. Смотрим, если кодировка какая либо другая, ее нужно поменять на UTF- 8.

  • -сохраняем в этой кодировке.
  • -внутри кода Базы Данных кодировку меняем на UTF- 8.

Сохраняем файл в редакторе Notepad++, в значении- «UTF- 8 без сигнатуры BOM» и закачиваем файл на свой хостинг, то есть меняем на хостинге старый файл wp- config.php, на новый.

Как правило этих действий достаточно для того чтобы на Вашем блоге все отображалось корректно. Если после проведенных действий ничего не получилось, можно попробовать еще один способ изменения кодировки. Для этого нужно внести изменения в файле.htaccess . Для корректировки открываем файл.htaccess с помощью редактора Notepad++ и добавляем в начале одну из данных строк:

  • AddDefaultCharset UTF-8
  • CharsetDisable On
  • CharsetDefault UTF-8
  • CharsetSourceEnc UTF-8

Возможно будет достаточно поменять один из вариантов, бывает достаточно первого. Если не получается, перебираем вручную следующие варианты, поочередно вписывая следующие варианты. Не забываем последовательность действий:

  1. Открываем файл в редакторе.
  2. Вносим изменения.
  3. Сохраняем.
  4. Закачиваем на хостинг.
  5. Проверяем.

Еще хочу упомянуть об одной из проблем, которая может возникнуть, и с которой я столкнулся при создании страниц захвата. При закачке на хостинг файлов страницы захвата, так же может возникнуть ситуация несовпадения кодировок. В этом случае нужно подправить файл index.html. Для этого, с помощью FaleZilla, извлекаем файл и переносим на «Рабочий стол» компьютера. Далее, открываем файл с помощью обычного Блокнота.

После того как файл открылся в Блокноте, левой кнопкой мыши нажимаем на «Файл» и «Сохранить как...».

15.03.2016

Пока нет


Всем привет!
Продолжаем изучать основы HTML. В этом уроке мы разберем, как указать HTML кодировку для сайта (веб-страницы).
Этот урок очень важен, так как незнание того, как указать кодировку для веб-страницы может привести к тому, что вашу страницу не смогут прочитать. Вы спросите: «Это как так, не смогут?».
Давайте я покажу, как выглядит мой блог с неправильной кодировкой:

Итак, HTML кодировка – это таблицы соответствия кодов и символов алфавита. То есть, наш компьютер по кодировке поменяет код на понятные читабельные буквы .

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

Обратите внимание, в коде есть слово «имя кодировки». Здесь нужно указать HTML кодировку.
Обычно это utf-8 или windows-1251 .

Кодировка для utf-8 :

Кодировка для windows-1251 :

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

Переходим к практике.

Как создать HTML документ с
кодировкой utf-8

«Все программы» => «Стандартные» => «Блокнот» :

</body> </html> </p><p> <head></head> вот этот мета-тег:</p><p> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> </p><p> <html> <head> <title> Моя первая HTML-страничка на StepkinBlog.. </body> </html> </p><p>Жмите в блокноте <span>«Файл» => «Сохранит как…» </span>:</p> <p><img src='https://i2.wp.com/stepkinblog.ru/wp-content/uploads/2016/03/kak-ukazat-kodirovku-sajta-na-html-osnovy-html-dlya-nachinayushhix-urok-20-3.png' width="100%" loading=lazy></p><p><br> Там, где пункт «Кодировка:» укажите «UTF-8» .<br> Жмите «Сохранить» :</p> <p><img src='https://i1.wp.com/stepkinblog.ru/wp-content/uploads/2016/03/kak-ukazat-kodirovku-sajta-na-html-osnovy-html-dlya-nachinayushhix-urok-20-4.png' width="100%" loading=lazy></p><p>Увеличить изображение?</p> <h3><span>Как создать HTML документ с кодировкой windows-1251 </span></h3> <p>Открывайте <a href="/standartnyi-bloknot-windows-gde-nahoditsya-bloknot/">стандартный блокнот</a>. <span><i>«Все программы» => «Стандартные» => «Блокнот» </i> </span>.<br> Далее вставляете в блокнот <a href="/standartnyi-html-kod-html-programmnyi-kod/">стандартный код</a> HTML:</p><p> <html> <head> <title> Моя первая HTML-страничка на StepkinBlog.. </body> </html> </p><p>Теперь указываем, в какой кодировке сохранена веб-страница. Для этого разместите между тегами <head></head> вот этот мета-тег:</p><p> <meta http-equiv="Content-Type" content="text/html; charset=windows-1251"> </p><p>Вот так должно получиться (строка №4 ):</p><p> <html> <head> <title> Моя первая HTML-страничка на StepkinBlog.. </body> </html> </p><p>Жмите в блокноте <span>«Файл» => «Сохранит как…» </span>:</p> <p><img src='https://i1.wp.com/stepkinblog.ru/wp-content/uploads/2016/03/kak-ukazat-kodirovku-sajta-na-html-osnovy-html-dlya-nachinayushhix-urok-20-5.png' width="100%" loading=lazy></p> <p>Там, где пункт «Имя файла» напишите название веб-страницы на латинице и с расширением «.html» . Я думю, вы это помните еще с первых уроков.<br> Там, где пункт «Кодировка:» укажите «ANSI» .<br> Жмите «Сохранить» :</p> <p><img src='https://i0.wp.com/stepkinblog.ru/wp-content/uploads/2016/03/kak-ukazat-kodirovku-sajta-na-html-osnovy-html-dlya-nachinayushhix-urok-20-6.png' width="100%" loading=lazy></p> <p>Вот и все!</p> <p>Большинство вебмастеров выбирают кодировку UTF-8 . Причины говорить не буду, так как боюсь нагрузить вас информацией, которая на вашем этапе познания HTML еще не нужна.</p> <p>Для примера в блокнте установите код:</p><p> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> </p><p>И укажите при сохранении «ANSI» :</p> <p><img src='https://i0.wp.com/stepkinblog.ru/wp-content/uploads/2016/03/kak-ukazat-kodirovku-sajta-na-html-osnovy-html-dlya-nachinayushhix-urok-20-6.png' width="100%" loading=lazy></p> <p>Так как это неправильно, результат будет вот таким:</p> <p>Сохраняйте правильно ваши веб-страници во избежание вот таких результатов </p> <p>Предыдущая запись <br></span> <span>Следующая запись <br></p> <p>Для того, чтобы страницы вашего сайта отображались корректно во всех браузерах и на всевозможных устройствах, нужно позаботиться об установке правильной кодировки. Несоблюдение некоторых условий, о которых мы сегодня расскажем подробно, может привести к тому, что текст превратится в бессмысленный набор символов, прочитать которые просто невозможно (кракозябры).</p> <h2>Почему вместо нормального текста отображаются кракозябры</h2> <p>Каждая страница вашего сайта должна иметь определенную кодировку. О том, какая кодировка используется в <a href="/nevozmozhno-vypolnit-zapros-v-dannyi-moment-iphone-reshenie-oshibki/">данный момент</a> необходимо сообщать браузеру, передавая специальные заголовки (header). В этих заголовках необходимо указать кодировку, соответствующую той, которую вы используете в теле документов, размещенных на сайте (на его страницах).</p> <p><img src='https://i0.wp.com/makeasite.ru/wp-content/uploads/2015/09/utf-8-and-windows-1251-compare.jpg' align="left" height="244" width="300" loading=lazy>Современные браузеры могут и сами определить кодировку документа, если вебмастер забыл указать ее в явном виде. Иногда случается так, что возникают несостыковки между «мнением» браузера и реальностью, отсюда и появляется набор символов, которые невозможно прочитать. Набор галиматьи может принимать <a href="/chto-takoe-umnaya-rozetka-vozmozhnost-distancionnogo-upravleniya-s-gsm/">разные виды</a>, иногда это будут просто странные символы, похожие на древние иероглифы, а иногда - просто вопросики или же вопросики внутри черных ромбиков. По большому счету не так важно, какие именно кракозябры отображает браузер, а важно то, что человек их прочитать не может.</p> <p>Если же вы столкнулись с проблемой некорректно указанной кодировки и видите на своем сайте то, что не в состоянии прочитать, в первую очередь воспользуйтесь специальным Декодером , разработанным в студии Артемия Лебедева. Для этого просто скопируйте текст, который хотите расшифровать, вставьте его в специальное поле и нажмите «Расшифровать». В случае успешного декодирования, вы увидите уже читаемый текст, а также исходную кодировку и путь, который пришлось пройти программе, чтобы вывести результат.</p> <p>Все это нужно, скорее, для продвинутых пользователей, которым полученная информация сможет чем-то помочь. Возможно, результат действий программы натолкнет вас на мысль и вы сообразите, откуда на вашем сайте берутся кракозябры и быстро исправите ситуацию. А если же проделанные манипуляции совершенно ни о чем вам не говорят, то давайте просто двигаться дальше.</p> <h2>Как правильно выбрать кодировку</h2> <p>В рамках данной статьи мы не будем углубляться в то, какие кодировки бывают и чем они друг от друга отличаются, т.к. не хотим перегружать ни себя, ни вас <a href="/lishnyaya-informaciya-menshe-znaesh-luchshe-spish-kak-izbavit-sebya/">лишней информацией</a>, да и в целях сегодняшней статьи этого не было. Стоит отметить лишь тот факт, что на русскоязычном сайте нет совершенно никакого смысла устанавливать кодировку windows-1251 , исчерпывающе описанную в замечательной статье Википедии. Даже если все тексты на нем будут написаны исключительно на русском и не будет никаких вкраплений нестандартных символов. Вместо этого нужно просто выбрать универсальную кодировку UTF-8 , приняв это как данное, не забивая голову лишней информацией.</p> <p><img src='https://i2.wp.com/makeasite.ru/wp-content/uploads/2015/09/utf-8-and-windows-1251-compare.jpg' align="left" height="244" width="300" loading=lazy>Дело в том, что нет смысла выбирать для своего сайта кодировку, которая поддерживает одни только символы славянских языков, таких как русский, украинский, белорусский, сербский, македонский и болгарский. Зачем изначально ограничивать себя и обрекать на <a href="/android-ne-rabotaet-kamera-ne-rabotaet-kamera-na-telefone-bystraya/">возможные проблемы</a> в дальнейшем. Что вы будете делать, если понадобится вставить символ, которого нет в поддерживаемых?</p> <p>UTF-8 (от англ. Unicode Transformation Format) - восьмибитный формат преобразования Юникода, который получил всемирное признание и был стандартизирован как раз для избежания проблем, связанных с появлением кракозябров и неразберихой с нечитабельными текстами. Из чего можно смело сделать вывод, что в <a href="/internet-s-postoplatnoi-sistemoi-mezhdunarodnyi-rouming-tarificiruetsya-v-dannom-sluchae-soglasno-dru/">данном случае</a> из двух зол нужно выбирать бóльшую и спать спокойно, не вникая в подробности, потому что тут и так все понятно. Посмотрите на размер Юпитера и Венеры для сравнения.</p> <h2>Основные способы установки правильной кодировки</h2> <p>Довольно часто проблемы с кодировкой сайта возникают не потому что не было выполнено ни одного из условий, о которых мы вам сейчас расскажем, а достаточно не выполнить всего лишь одно из них, чтобы текст на вашем сайте начал отображаться некорректно. После того, как вы установите кодировку всеми перечисленными способами, задача будет решена с вероятностью 99.9%. К такому заключению мы пришли на основании многолетнего опыта работы с сайтами на всевозможных хостинг-площадках, с использованием самых <a href="/chto-takoe-linux-operacionnaya-sistema-operacionnye-sistemy-linux-pod/">разных систем</a> администрирования и настроек серверов.</p> <h3>Кодировка в.htaccess - AddDefaultCharset</h3> <p>Прежде всего, вам нужно установить кодировку всех страниц сайта по умолчанию с помощью одной очень полезной <a href="/sintaksis-i-vozmozhnosti-ukazanie-startovoi-stranicy-s-pomoshchyu-faila/">директивы htaccess</a> - AddDefaultCharset, которая в дословном переводе с <a href="/kak-pomenyat-rasklad-klaviatury-dlya-smeny-yazyka-angliiskaya-raskladka/">английского языка</a> означает «ДобавитьКодировкуПоУмолчанию». Делается это очень просто:</p><p>AddDefaultCharset UTF-8 </p><p><img src='https://i0.wp.com/makeasite.ru/wp-content/uploads/2015/09/krakozyabra.jpg' align="right" height="434" width="300" loading=lazy>Если вы не знаете что такое <i></i>, то просто создайте <a href="/sozdanie-tekstovogo-faila-v-c-vvod-dannyh-iz-faila-i-vyvod-v/">текстовый файл</a> в блокноте, а затем с <a href="/gruppovoe-pereimenovanie-failov-s-pomoshchyu-total-commander-bystroe-pereimenovanie/">помощью Total</a> Commander-а переименуйте его в файл без названия, имеющий расширение HTACCESS (<i></i> - именно так и должно выглядеть <a href="/kak-ustanovit-nikneim-v-kontakte-kak-sdelat-v-vk-otchestvo-vozvrashchaem-sebe/">полное имя</a> вашего файла). После этого закачайте только что созданный файл в корневую директорию вашего сайта (в то же место, где находится главный исполняющий файл, например <i>index.php </i>). И не забудьте вставить строку с кодировкой по умолчанию, которую мы только что приводили.</p> <h3>Кодировка с помощью meta charset</h3> <p><img src='https://i0.wp.com/makeasite.ru/wp-content/uploads/2015/09/meta-tags.jpg' align="right" height="112" width="300" loading=lazy>Метатеги способны отсылать браузеру информацию о странице в виде специальных заголовков, одним из которых как раз является тот, что нам нужен - <i>charset </i>. Вообще метатеги могут иметь аж 4 различных атрибута:</p> <ol><li>content;</li> <li>http-equiv;</li> <li>name;</li> <li>scheme.</li> </ol><p>На самом деле, из представленных четырех атрибутов только один является обязательным - <i>content </i>, но существуют и исключения. Например в нашем случае будет использоваться сокращенная версия записи и мы установим кодировку с помощью метатега именно так:</p><p> <meta charset="utf-8"> </p><p>Старый же формат записи давно канул в Лету и использовать его больше смысла нет:</p><p> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> </p><p>Как известно, метатеги принято размещать внутри контейнера <i>head </i>. Об этом, наверное, знают уже все без исключения. Проделайте эту операцию и мы перейдем к следующему пункту в нашем списке.</p> <h3>Кодировка файла с помощью функции header PHP</h3> <p>Данный способ подойдет лишь тем, у кого сайт реализован с помощью самого популярного на данный момент языка программирования, по большей части ориентированного на создание веб-сайтов - PHP (Hyper Text Preprocessor). Для решения задачи, поставленной в рамках данной статьи, мы воспользуемся замечательной встроенной функцией header() , предназначенной для передачи заголовков, аналогично метатегам, но с тем небольшим отличием, что действие производится из PHP-скрипта, а не посредством вывода HTML-кода.</p> <p>Установить кодировку UTF-8 для файла при помощи функции <i>header() </i> довольно просто - нужно просто вставить приведенный код в самое начало страницы, но разумеется внутри области действия PHP, которая обозначается так: <? здесь у нас PHP-код?> или же так - <?php здесь у нас PHP-код?>.</p><p>Header("Content-type: text/html; charset=utf-8"); </p><p><img src='https://i0.wp.com/makeasite.ru/wp-content/uploads/2015/09/PHP.jpg' align="right" height="209" width="300" loading=lazy>Самым <a href="/gde-vvodit-parol-dlya-vai-fai-neskolko-vazhnyh-momentov-pravila/">важным моментом</a> здесь является то, что заголовки мы имеем право передавать только в том случае, если перед этим не было никакого вывода со стороны скрипта. Именно поэтому мы вставляем данный код в самое начало страницы. Делать это нужно с умом и хорошо понимать, что происходит, ведь вы можете быть уверены, что вставляете заголовок в начало файла, но можете не знать, что этот файл используется в другом файле, в который подтягивается с помощью функции <i>require </i> или <i>include </i> уже после того, как определенная информация была выведена на экран. Поэтому если вы не очень хорошо понимаете о чем сейчас <a href="/kakoi-monopod-kupit-chem-otlichaetsya-palka-dlya-selfi-ot-monopoda-esli/">идет речь</a>, лучше перейдите к <a href="/kak-razgovarivat-s-plansheta-na-dalnem-rasstoyanii-mozhno-li-zvonit-s/">следующему шагу</a> и вернитесь к этому, если 3 предыдущих не помогли установить правильную кодировку страниц вашего сайта.</p> <h3>Сохранение файлов в правильной кодировке</h3> <p>Одной из, наверное, самых распространенных причин возникновения кракозябров на сайте является некорректное кодирование самих фалов, использующихся для генерации конечного документа. Чаще всего такая проблема возникает у начинающих программистов, которые только делают свои первые шаги в освоении искусства . Когда в качестве движка сайта выбрана одна из популярных на данный момент систем администрирования, <a href="/ne-vklyuchaetsya-noutbuk-reshaem-problemu-samostoyatelno-operativnaya/">данная проблема</a> может возникать в очень редких случаях, но если используется , то такое случается чуть ли не в каждом третьем случае.</p> <p><img src='https://i0.wp.com/makeasite.ru/wp-content/uploads/2015/09/encode-in-unicode-without-BOM.jpg' align="left" height="223" width="300" loading=lazy>Как мы условились ранее, используемая нами кодировка на всех, даже на самых прожженных русскоязычных сайтах - UTF-8, поэтому и все файлы, составляющие движок сайта мы с вами будем кодировать в этом же формате. А для того, чтобы изменить кодировку самого файла, закачиваемого на сервер, обычного блокнота, предоставляемого операционной <a href="/operacionnye-sistemy-windows-nt-yavlyayutsya-operacionnye-sistemy-windows-oblasti/">системой Windows</a> будет конечно же не достаточно. Поэтому лучше воспользоваться <a href="/kak-udalit-polnostyu-programmu-s-mas-kak-udalit-programmu-s-mac-sposob/">сторонней программой</a>, распространяемой бесплатно - Notepad++, которую можно скачать на официальном сайте без особых проблем.</p> <p>Успешно пройдя несложный процесс установки, вы должны будете назначить эту программу редактором по умолчанию, произвести некоторые настройки на свой вкус и поменять кодировку некорректно отображаемого файла так же, как показано на скриншоте. Т.е. вам необходимо выбрать значение «Кодировать в UTF-8 (без BOM)». Хорошим признаком того, что причина была именно в этом, будет то, что изначально не будет выбран ни один из вариантов и вам будет предложено «Преобразовать в UTF-8 (без BOM)». Если вы это увидели, то будьте уверены, что до решения проблемы с кодировкой остались считанные секунды.</p> <p><img src='https://i1.wp.com/makeasite.ru/wp-content/uploads/2015/09/yes.jpg' align="right" height="177" width="300" loading=lazy>В дополнение хочется сказать лишь то, что выбирать нужно именно <b>без BOM </b>. В противном случае, если кодировать просто в UTF-8 (с BOM), то в начале файла будут создаваться лишние байты. BOM - Byte Order Mark стараются не использовать именно в вебе при кодировании в формате UTF-8, т.к. это приводит к ошибкам из-за создания помех корректной PHP-интерпретации.</p> <p>Ну а теперь, когда все <a href="/kak-postavit-zashchitnyi-kod-na-nokia-kak-ubrat-zashchitnyi-kod-na-nokia/">необходимые действия</a> выполнены, вы, скорей всего, на страницах вашего сайта увидите перед собой легко читаемый текст и вздохнете свободно 🙂</p> <script>document.write("<img style='display:none;' src='//counter.yadro.ru/hit;artfast_after?t44.1;r"+ escape(document.referrer)+((typeof(screen)=="undefined")?"": ";s"+screen.width+"*"+screen.height+"*"+(screen.colorDepth? screen.colorDepth:screen.pixelDepth))+";u"+escape(document.URL)+";h"+escape(document.title.substring(0,150))+ ";"+Math.random()+ "border='0' width='1' height='1' loading=lazy>");</script> </article> <div id="disqus_thread"> <div id="dsq-content"> <ul id="dsq-comments"> <li class="comment even thread-even depth-1" id="dsq-comment-2"> <div id="dsq-comment-header-2" class="dsq-comment-header"> <cite id="dsq-cite-2"> <span id="dsq-author-user-2">Сергей Савенков</span> </cite> </div> <div id="dsq-comment-body-2" class="dsq-comment-body"> <div id="dsq-comment-message-2" class="dsq-comment-message"> <p>какой то “куцый” обзор… как будто спешили куда то</p> </div> </div> </li> </ul> </div> </div> </div> </div> <div class="wpb_column vc_column_container td-pb-span4"> <div class="vc_column-inner "> <div class="wpb_wrapper"> <div class="wpb_widgetised_column wpb_content_element"> <div class="wpb_wrapper"> <div class="td-a-rec td-a-rec-id-sidebar td-rec-hide-on-p "> <div id="adriver_banner_1494422254"></div> </div> <div class="td-a-rec td-a-rec-id-custom_ad_1 td-rec-hide-on-p "> <div> </div> <div id='div-gpt-ad-1491821174306-2' style='height:600px; width:300px;'> </div> </div> <div class="td-a-rec td-a-rec-id-custom_ad_2 td-rec-hide-on-p "> <div> </div> <div id='div-gpt-ad-1491821174306-3' style='height:600px; width:300px;'> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> <div class="td-footer-wrapper td-footer-template-14"> <div class="td-container td-footer-bottom-full"> <div class="td-pb-row"> <div class="td-pb-span3"> <aside class="footer-logo-wrap"><a href="/"><img class="td-retina-data" src="/uploads/logo.png" data-retina="/wp-content/uploads/2017/02/logo_544x180_bw.png" alt="Техника. Новости. Телефоны. Ноутбуки. Сравнение. Windows" title="Техника. Новости. Телефоны. Ноутбуки. Сравнение. Windows"/ loading=lazy></a></aside> </div> <div class="td-pb-span5"> <aside class="footer-text-wrap"> <div class="block-title"><span>Общая информация</span></div>.</aside> </div> <div class="td-pb-span4"> <aside class="footer-social-wrap td-social-style-2"> <div class="block-title"><span>Сайт в социальных сетей</span></div> <span class="td-social-icon-wrap"> <a target="_blank" href="https://www.facebook.com/sharer/sharer.php?u=https://danykom.ru/ukazat-kodirovku-stranicy-html-kodirovka-v-kakuyu-kodirovku/" title="Facebook"> <i class="td-icon-font td-icon-facebook"></i> </a> </span> <span class="td-social-icon-wrap"> <a target="_blank" href="" title="Instagram"> <i class="td-icon-font td-icon-instagram"></i> </a> </span> <span class="td-social-icon-wrap"> <a target="_blank" href="" title="RSS"> <i class="td-icon-font td-icon-rss"></i> </a> </span></aside> </div> </div> </div> </div> <div class="td-sub-footer-container"> <div class="td-container"> <div class="td-pb-row"> <div class="td-pb-span7 td-sub-footer-menu"> <div class="menu-td-demo-footer-menu-container"> <ul id="menu-td-demo-footer-menu" class="td-subfooter-menu"> </ul> </div> </div> <div class="td-pb-span5 td-sub-footer-copy"> © 2024 Техника. Новости. Телефоны. Ноутбуки. Сравнение. Windows </div> </div> </div> </div> </div> <link rel='stylesheet' id='css-5-css' href='/wp-content/mmr/ffba0e2b-1516146715.min.css' type='text/css' media='all' /> <script type='text/javascript' src='https://danykom.ru/wp-content/mmr/4ab436a1-1516146715.min.js'></script> <script> (function() { var html_jquery_obj = jQuery('html'); if (html_jquery_obj.length && (html_jquery_obj.is('.ie8') || html_jquery_obj.is('.ie9'))) { var path = '/wp-content/themes/Newspaper/style.css'; jQuery.get(path, function(data) { var str_split_separator = '#td_css_split_separator'; var arr_splits = data.split(str_split_separator); var arr_length = arr_splits.length; if (arr_length > 1) { var dir_path = '/wp-content/themes/Newspaper'; var splited_css = ''; for (var i = 0; i < arr_length; i++) { if (i > 0) { arr_splits[i] = str_split_separator + ' ' + arr_splits[i]; } //jQuery('head').append('<style>' + arr_splits[i] + '</style>'); var formated_str = arr_splits[i].replace(/\surl\(\'(?!data\:)/gi, function regex_function(str) { return ' url(\'' + dir_path + '/' + str.replace(/url\(\'/gi, '').replace(/^\s+|\s+$/gm, ''); }); splited_css += "<style>" + formated_str + "</style>"; } var td_theme_css = jQuery('link#td-theme-css'); if (td_theme_css.length) { td_theme_css.after(splited_css); } } }); } })(); </script> </body> </html>