Html кодировки

UTF-8 Basic Latin

Char Dec Hex Entity Name
32 0020   SPACE
! 33 0021   EXCLAMATION MARK
« 34 0022 " QUOTATION MARK
# 35 0023   NUMBER SIGN
$ 36 0024   DOLLAR SIGN
% 37 0025   PERCENT SIGN
& 38 0026 & AMPERSAND
39 0027   APOSTROPHE
( 40 0028   LEFT PARENTHESIS
) 41 0029   RIGHT PARENTHESIS
* 42 002A   ASTERISK
+ 43 002B   PLUS SIGN
, 44 002C   COMMA
45 002D   HYPHEN-MINUS
. 46 002E   FULL STOP
47 002F   SOLIDUS
48 0030   DIGIT ZERO
1 49 0031   DIGIT ONE
2 50 0032   DIGIT TWO
3 51 0033   DIGIT THREE
4 52 0034   DIGIT FOUR
5 53 0035   DIGIT FIVE
6 54 0036   DIGIT SIX
7 55 0037   DIGIT SEVEN
8 56 0038   DIGIT EIGHT
9 57 0039   DIGIT NINE
58 003A   COLON
; 59 003B   SEMICOLON
< 60 003C &lt; LESS-THAN SIGN
= 61 003D   EQUALS SIGN
> 62 003E &gt; GREATER-THAN SIGN
? 63 003F   QUESTION MARK
@ 64 0040   COMMERCIAL AT
A 65 0041   LATIN CAPITAL LETTER A
B 66 0042   LATIN CAPITAL LETTER B
C 67 0043   LATIN CAPITAL LETTER C
D 68 0044   LATIN CAPITAL LETTER D
E 69 0045   LATIN CAPITAL LETTER E
F 70 0046   LATIN CAPITAL LETTER F
G 71 0047   LATIN CAPITAL LETTER G
H 72 0048   LATIN CAPITAL LETTER H
I 73 0049   LATIN CAPITAL LETTER I
J 74 004A   LATIN CAPITAL LETTER J
K 75 004B   LATIN CAPITAL LETTER K
L 76 004C   LATIN CAPITAL LETTER L
M 77 004D   LATIN CAPITAL LETTER M
N 78 004E   LATIN CAPITAL LETTER N
O 79 004F   LATIN CAPITAL LETTER O
P 80 0050   LATIN CAPITAL LETTER P
Q 81 0051   LATIN CAPITAL LETTER Q
R 82 0052   LATIN CAPITAL LETTER R
S 83 0053   LATIN CAPITAL LETTER S
T 84 0054   LATIN CAPITAL LETTER T
U 85 0055   LATIN CAPITAL LETTER U
V 86 0056   LATIN CAPITAL LETTER V
W 87 0057   LATIN CAPITAL LETTER W
X 88 0058   LATIN CAPITAL LETTER X
Y 89 0059   LATIN CAPITAL LETTER Y
Z 90 005A   LATIN CAPITAL LETTER Z
91 005B   LEFT SQUARE BRACKET
\ 92 005C   REVERSE SOLIDUS
93 005D   RIGHT SQUARE BRACKET
^ 94 005E   CIRCUMFLEX ACCENT
_ 95 005F   LOW LINE
` 96 0060   GRAVE ACCENT
a 97 0061   LATIN SMALL LETTER A
b 98 0062   LATIN SMALL LETTER B
c 99 0063   LATIN SMALL LETTER C
d 100 0064   LATIN SMALL LETTER D
e 101 0065   LATIN SMALL LETTER E
f 102 0066   LATIN SMALL LETTER F
g 103 0067   LATIN SMALL LETTER G
h 104 0068   LATIN SMALL LETTER H
i 105 0069   LATIN SMALL LETTER I
j 106 006A   LATIN SMALL LETTER J
k 107 006B   LATIN SMALL LETTER K
l 108 006C   LATIN SMALL LETTER L
m 109 006D   LATIN SMALL LETTER M
n 110 006E   LATIN SMALL LETTER N
o 111 006F   LATIN SMALL LETTER O
p 112 0070   LATIN SMALL LETTER P
q 113 0071   LATIN SMALL LETTER Q
r 114 0072   LATIN SMALL LETTER R
s 115 0073   LATIN SMALL LETTER S
t 116 0074   LATIN SMALL LETTER T
u 117 0075   LATIN SMALL LETTER U
v 118 0076   LATIN SMALL LETTER V
w 119 0077   LATIN SMALL LETTER W
x 120 0078   LATIN SMALL LETTER X
y 121 0079   LATIN SMALL LETTER Y
z 122 007A   LATIN SMALL LETTER Z
{ 123 007B   LEFT CURLY BRACKET
| 124 007C   VERTICAL LINE
} 125 007D   RIGHT CURLY BRACKET
~ 126 007E   TILDE

Базы банных

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

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

Пока не нужен перенос все работает и функционирует, хоть и не совсем правильно. Но после переезда начинаются неприятности. В идеале вы должны использовать либо только УТФ, либо виндовс-1251, но по факту всегда и у всех случаются вот такие недочеты.

Чтобы расшифровка согласовалась необходимо вписать код mysql_query(«SET NAMES cp1251»). В этом случае преобразование будет осуществлять по другому протоколу – cp1251.

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

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

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

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

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

mysql -u root -p

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

SHOW DATABASES;

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

USE information_schema;

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

SHOW TABLES;

Далее выполните команду, в которой имя_таблицы замените на настоящее имя таблицы:

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 );
}
$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 вам нужно заменить на ту кодировку, которая используется для ваших таблиц.

Range: Decimal 8192-8303. Hex 2000-206F.

If you want any of these characters displayed in HTML, you can use the HTML
entity found in the table below.

If the character does not have an HTML entity, you can use the decimal (dec)
or hexadecimal (hex) reference.

Will display as:

I will display ‰
I will display ‰
I will display ‰

Older browsers may not support all the HTML5 entities in the table below.
Chrome and Opera have good support, and IE 11+ and Firefox 35+ support all the entities.

Char Dec Hex Entity Name
  8192 2000   EN QUAD
8193 2001   EM QUAD
8194 2002 &ensp; EN SPACE
8195 2003 &emsp; EM SPACE
8196 2004   THREE-PER-EM SPACE
8197 2005   FOUR-PER-EM SPACE
8198 2006   SIX-PER-EM SPACE
8199 2007   FIGURE SPACE
8200 2008   PUNCTUATION SPACE
8201 2009 &thinsp; THIN SPACE
8202 200A   HAIR SPACE
8203 200B   ZERO WIDTH SPACE
8204 200C &zwnj; ZERO WIDTH NON-JOINER
8205 200D &zwj; ZERO WIDTH JOINER
8206 200E &lrm; LEFT-TO-RIGHT MARK
8207 200F &rlm; RIGHT-TO-LEFT MARK
8208 2010   HYPHEN
8209 2011   NON-BREAKING HYPHEN
8210 2012   FIGURE DASH
8211 2013 &ndash; EN DASH
8212 2014 &mdash; EM DASH
8213 2015   HORIZONTAL BAR
8214 2016   DOUBLE VERTICAL LINE
8215 2017   DOUBLE LOW LINE
8216 2018 &lsquo; LEFT SINGLE QUOTATION MARK
8217 2019 &rsquo; RIGHT SINGLE QUOTATION MARK
8218 201A &sbquo; SINGLE LOW-9 QUOTATION MARK
8219 201B   SINGLE HIGH-REVERSED-9 QUOTATION MARK
8220 201C &ldquo; LEFT DOUBLE QUOTATION MARK
8221 201D &rdquo; RIGHT DOUBLE QUOTATION MARK
8222 201E &bdquo; DOUBLE LOW-9 QUOTATION MARK
8223 201F   DOUBLE HIGH-REVERSED-9 QUOTATION MARK
8224 2020 &dagger; DAGGER
8225 2021 &Dagger; DOUBLE DAGGER
8226 2022 &bull; BULLET
8227 2023   TRIANGULAR BULLET
8228 2024   ONE DOT LEADER
8229 2025   TWO DOT LEADER
8230 2026 &hellip; HORIZONTAL ELLIPSIS
8231 2027   HYPHENATION POINT
8232 2028   LINE SEPARATOR
8233 2029   PARAGRAPH SEPARATOR
8234 202A   LEFT-TO-RIGHT EMBEDDING
8235 202B   RIGHT-TO-LEFT EMBEDDING
8236 202C   POP DIRECTIONAL FORMATTING
8237 202D   LEFT-TO-RIGHT OVERRIDE
8238 202E   RIGHT-TO-LEFT OVERRIDE
8239 202F   NARROW NON-BREAK SPACE
8240 2030 &permil; PER MILLE SIGN
8241 2031   PER TEN THOUSAND SIGN
8242 2032 &prime; PRIME
8243 2033 &Prime; DOUBLE PRIME
8244 2034   TRIPLE PRIME
8245 2035   REVERSED PRIME
8246 2036   REVERSED DOUBLE PRIME
8247 2037   REVERSED TRIPLE PRIME
8248 2038   CARET
8249 2039 &lsaquo; SINGLE LEFT-POINTING ANGLE QUOTATION MARK
8250 203A &rsaquo; SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
8251 203B   REFERENCE MARK
8252 203C   DOUBLE EXCLAMATION MARK
8253 203D   INTERROBANG
8254 203E &oline; OVERLINE
8255 203F   UNDERTIE
8256 2040   CHARACTER TIE
8257 2041   CARET INSERTION POINT
8258 2042   ASTERISM
8259 2043   HYPHEN BULLET
8260 2044 &frasl; FRACTION SLASH
8261 2045   LEFT SQUARE BRACKET WITH QUILL
8262 2046   RIGHT SQUARE BRACKET WITH QUILL
8263 2047   DOUBLE QUESTION MARK
8264 2048   QUESTION EXCLAMATION MARK
8265 2049   EXCLAMATION QUESTION MARK
8266 204A   TIRONIAN SIGN ET
8267 204B   REVERSED PILCROW SIGN
8268 204C   BLACK LEFTWARDS BULLET
8269 204D   BLACK RIGHTWARDS BULLET
8270 204E   LOW ASTERISK
8271 204F   REVERSED SEMICOLON
8272 2050   CLOSE UP
8273 2051   TWO ASTERISKS ALIGNED VERTICALLY
8274 2052   COMMERCIAL MINUS SIGN
8275 2053   SWUNG DASH
8276 2054   INVERTED UNDERTIE
8277 2055   FLOWER PUNCTUATION MARK
8278 2056   THREE DOT PUNCTUATION
8279 2057   QUADRUPLE PRIME
8280 2058   FOUR DOT PUNCTUATION
8281 2059   FIVE DOT PUNCTUATION
8282 205A   TWO DOT PUNCTUATION
8283 205B   FOUR DOT MARK
8284 205C   DOTTED CROSS
8285 205D   TRICOLON
8286 205E   VERTICAL FOUR DOTS
8287 205F   MEDIUM MATHEMATICAL SPACE
8288 2060   WORD JOINER
8289 2061   FUNCTION APPLICATION
8290 2062   INVISIBLE TIMES
8291 2063   INVISIBLE SEPARATOR
8292 2064   INVISIBLE PLUS
8294 2066   LEFT-TO-RIGHT ISOLATE
8295 2067   RIGHT-TO-LEFT ISOLATE
8296 2068   FIRST STRONG ISOLATE
8297 2069   POP DIRECTIONAL ISOLATE
8298 206A   INHIBIT SYMMETRIC SWAPPING
8299 206B   ACTIVATE SYMMETRIC SWAPPING
8300 206C   INHIBIT ARABIC FORM SHAPING
8301 206D   ACTIVATE ARABIC FORM SHAPING
8302 206E   NATIONAL DIGIT SHAPES
8303 206F   NOMINAL DIGIT SHAPES

❮ Previous
Next ❯

C0 Controls

The control characters were originally designed to control
hardware devices.

Control characters (except horizontal tab, carriage return, and line feed)
have nothing to do inside an HTML document.

Char Dec Hex Description
NUL 0000 null character
SOH 1 0001 start of header
STX 2 0002 start of text
ETX 3 0003 end of text
EOT 4 0004 end of transmission
ENQ 5 0005 enquiry
ACK 6 0006 acknowledge
BEL 7 0007 bell (ring)
BS 8 0008 backspace
HT 9 0009 horizontal tab
LF 10 000A line feed
VT 11 000B vertical tab
FF 12 000C form feed
CR 13 000D carriage return
SO 14 000E shift out
SI 15 000F shift in
DLE 16 0010 data link escape
DC1 17 0011 device control 1
DC2 18 0012 device control 2
DC3 19 0013 device control 3
DC4 20 0014 device control 4
NAK 21 0015 negative acknowledge
SYN 22 0016 synchronize
ETB 23 0017 end transmission block
CAN 24 0018 cancel
EM 25 0019 end of medium
SUB 26 001A substitute
ESC 27 001B escape
FS 28 001C file separator
GS 29 001D group separator
RS 30 001E record separator
US 31 001F unit separator
       
DEL 127 007F delete (rubout)

❮ Previous
Next ❯

Типы кодировок

Существует несколько типов кодировок:

  1. ASCII – первая кодировка, которая была признана Американским национальным институтом мировых стандартов. Для ее использования задействуется 7 бит, где первые 128 значений включают в себя весь английский алфавит, числа, знаки и символы. Такая кодировка ранее использовалась на англоязычных ресурсах.
  2. Кириллица – вариант российской кодировки, используемый на русскоязычных сайтах и блогах.
  3. КОИ8 (код обмена информацией 8-битный) – была разработана для кодирования букв кириллических алфавитов. Распространена в Unix-подобных ОС и электронной почте. Постепенно исчезает в связи с приходом Юникода.
  4. Windows 1250-1258 – 8-битные кодировки, зародившиеся после появления операционной системы Windows. Например, 1250 – все языки центральной Европы, 1251 – кириллица. В ней присутствуют все буквы русского алфавита, а также символы (за исключением знака ударения).
  5. UTF-8 – наиболее используемый тип кодировок, работающий практически со всеми языками мира. Символы занимают от 1 до 4 байт, что дает возможность создавать мультиязычные веб-сайты. Помимо UTF-8, есть такие варианты, как UTF-16 и UTF-32, однако предпочтение отдается первому типу. 

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

Модуль ngx_http_charset_module

                         

Модуль добавляет указанную
кодировку в поле “Content-Type” заголовка ответа.
Кроме того, модуль может перекодировать данные из одной кодировки в другую
с некоторыми ограничениями:

  • перекодирование осуществляется только в одну сторону — от сервера к клиенту,
  • перекодироваться могут только однобайтные кодировки
  • или однобайтные кодировки в UTF-8 и обратно.
Синтаксис:
Умолчание:
charset off;
Контекст: , , ,

Добавляет указанную кодировку в поле “Content-Type”
заголовка ответа.
Если эта кодировка отличается от указанной в директиве
, то выполняется перекодирование.

Параметр отменяет добавление кодировки
в поле “Content-Type” заголовка ответа.

Кодировка может быть задана с помощью переменной:

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

Кроме того, кодировка может быть задана в поле “X-Accel-Charset”
заголовка ответа.
Эту возможность можно запретить с помощью директив
,
,
,

и
.

Синтаксис:
Умолчание:

Контекст:

Описывает таблицу перекодирования из одной кодировки в другую.
Таблица для обратного перекодирования строится на основании тех же данных.
Коды символов задаются в шестнадцатеричном виде.
Неописанные символы в пределах 80-FF заменяются на “”.
При перекодировании из UTF-8 символы, отсутствующие в однобайтной кодировке,
заменяются на “”.

Пример:

При описании таблицы перекодирования в UTF-8, коды кодировки UTF-8 должны
быть указаны во второй колонке, например:

Полные таблицы преобразования из в
и из и
в
входят в дистрибутив и находятся в файлах ,
и .

Синтаксис:
Умолчание:
charset_types text/html text/xml text/plain text/vnd.wap.wml
application/javascript application/rss+xml;
Контекст: , ,

Эта директива появилась в версии 0.7.9.

Разрешает работу модуля в ответах с указанными MIME-типами
в дополнение к “”.
Специальное значение “” соответствует любому MIME-типу
(0.8.29).

Синтаксис:
Умолчание:
override_charset off;
Контекст: , , ,

Определяет, выполнять ли перекодирование для ответов,
полученных от проксированного сервера или от FastCGI/uwsgi/SCGI/gRPC-сервера,
если в ответах уже указана кодировка в поле “Content-Type”
заголовка ответа.
Если перекодирование разрешено, то в качестве исходной кодировки
используется кодировка, указанная в полученном ответе.

Синтаксис:
Умолчание:

Контекст: , , ,

Задаёт исходную кодировку ответа.
Если эта кодировка отличается от указанной в директиве
, то выполняется перекодирование.

How does it work?

Meta Charset is what determines how text is transmitted and stored. This text data is usually converted to binary first and then there needs to be a kind of cipher that connects characters with their correct binary equivalents.

When this data is eventually decoded, the character encoding must be known beforehand or there could be complications. An example of these can be seen in browsers when you’re looking at a webpage. Information about the kind of character set used comes from the server or is written directly by the developer. Unfortunately, there is a myriad of character sets and this means diverse ways of matching binary codes to characters and bytes.

For content developers and authors, choosing the UTF-8 character set for your content means that you can use a single character set to multiple characters needs thereby simplifying things greatly without the need to track and convert multiple times. This means it would be easier to surf through your content without getting confusing characters and garbage

Кодировки стандарта 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 является универсальной и имеет внушительный резерв на будущее. Это делает ее наиболее удобной кодировкой для использования в интернете.

HTML Символы
Кодирование URL

Мета тег nofollow

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

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

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

С другой стороны, в эпоху семантического поиска, Google и Яндекс могут рассматривать источники, на которые вы ссылаетесь, как контекст, чтобы лучше понимать контент на страницах сайта.

По обеим этим причинам определённо стоит обращать внимание на то, где и как вы ставите ссылки. По умолчанию все ссылки являются открытыми для роботов поисковых систем

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

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

Каждый специалист самостоятельно поддерживает SEO-гигиену на своём проекте, сохраняя здоровый баланс между nofollow и dofollow ссылками. Обычно мета тег nofollow устанавливают на следующие типы ссылок:

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

История создания

До появления Unicode UTF-8 широко использовались другие кодировки (ASCII, ISO/IEC 646, ISO/IEC 8859, KOI8, Windows-125x).

Впервые кодировка UTF-8 была официально представлена на конференции USENIX в Сан Диего в январе 1993. От других мультибайтных кодировок ее отличала полная совместимость с ASCII: все символы ASCII в UTF-8 кодируются 7 битами. Каждый символ кодировки, отличный от ASCII, состоит из ведущего байта, указывающего длину последовательности, и одного или нескольких продолжающих байт. Такой принцип позволяет определить длину последовательности только по первому байту. Коды символов ASCII, ведущих и продолжающих байт не пересекаются, что позволяет легко найти начало последовательности простым откатом назад максимум на пять байт.

График изменения популярности кодировок в интернете

В ноябре 2003 года стандартом RFC-3629 максимальная длина последовательности UTF-8 была ограничена четырьмя байтами, однако потенциально UTF-8 позволяет использовать последовательности вплоть до шести байт.
На сегодняшний день самой распространенной кодировкой является UTF-8. Она включает в себя более двух миллионов символов: все возможные современные алфавиты, цифры, знаки препинания, математические и специальные символы, музыкальные знаки и символы вымерших форм письменности. А резерва UTF-8 хватит для размещения более двух миллиардов символов. Так что о смене кодировки в ближайшее время задумываться не придётся.

Однако торжество современных технологий — явление относительно новое. Согласно Google, самой распространенной в интернете кодировкой UTF-8 стала только в 2008 году — тогда ее использовали чуть более чем 25% проиндексированных веб-страниц. А еще в 2006 UTF-8 использовали менее чем 10% веб-страниц.

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

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

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

sudo gedit /var/www/html/encoding.html

Скопируем в него следующий HTML код, в котором отсутствует указание кодировки и посмотрим, какие проблемы могут с ним возникнуть и как их решить:

<html>
  <head>
    <title>Проверка кодировки</title>
   </head>
  <body>
    <h1>Тестовый файл для проверки кодировки</h1>
  </body>
</html>

Откроем этот файл в браузере http://localhost/encoding.html

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

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

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

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

<html>
  <head>
    <title>Проверка кодировки</title>
    <meta http-equiv="content-type" content="text/html; charset=utf-8" />
   </head>
  <body>
    <h1>Тестовый файл для проверки кодировки</h1>
  </body>
</html>

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

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

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

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

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

<Directory /var/www/>
	Options Indexes FollowSymLinks
	AllowOverride None
	Require all granted
</Directory>

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

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:

<Files ~ "\.html?$">  
     Header set Content-Type "text/html; charset=utf-8"
</Files>

Ещё один вариант, который также можно использовать в файле .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
Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector