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 | < | LESS-THAN SIGN |
= | 61 | 003D | EQUALS SIGN | |
> | 62 | 003E | > | 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 |   | EN SPACE | |
8195 | 2003 |   | 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 |   | THIN SPACE | |
8202 | 200A | HAIR SPACE | ||
| 8203 | 200B | ZERO WIDTH SPACE | |
| 8204 | 200C | ‌ | ZERO WIDTH NON-JOINER |
| 8205 | 200D | ‍ | ZERO WIDTH JOINER |
| 8206 | 200E | ‎ | LEFT-TO-RIGHT MARK |
| 8207 | 200F | ‏ | RIGHT-TO-LEFT MARK |
‐ | 8208 | 2010 | HYPHEN | |
‑ | 8209 | 2011 | NON-BREAKING HYPHEN | |
‒ | 8210 | 2012 | FIGURE DASH | |
– | 8211 | 2013 | – | EN DASH |
— | 8212 | 2014 | — | EM DASH |
― | 8213 | 2015 | HORIZONTAL BAR | |
‖ | 8214 | 2016 | DOUBLE VERTICAL LINE | |
‗ | 8215 | 2017 | DOUBLE LOW LINE | |
‘ | 8216 | 2018 | ‘ | LEFT SINGLE QUOTATION MARK |
’ | 8217 | 2019 | ’ | RIGHT SINGLE QUOTATION MARK |
‚ | 8218 | 201A | ‚ | SINGLE LOW-9 QUOTATION MARK |
‛ | 8219 | 201B | SINGLE HIGH-REVERSED-9 QUOTATION MARK | |
“ | 8220 | 201C | “ | LEFT DOUBLE QUOTATION MARK |
” | 8221 | 201D | ” | RIGHT DOUBLE QUOTATION MARK |
„ | 8222 | 201E | „ | DOUBLE LOW-9 QUOTATION MARK |
‟ | 8223 | 201F | DOUBLE HIGH-REVERSED-9 QUOTATION MARK | |
† | 8224 | 2020 | † | DAGGER |
‡ | 8225 | 2021 | ‡ | DOUBLE DAGGER |
• | 8226 | 2022 | • | BULLET |
‣ | 8227 | 2023 | TRIANGULAR BULLET | |
․ | 8228 | 2024 | ONE DOT LEADER | |
‥ | 8229 | 2025 | TWO DOT LEADER | |
… | 8230 | 2026 | … | 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 | ‰ | PER MILLE SIGN |
‱ | 8241 | 2031 | PER TEN THOUSAND SIGN | |
′ | 8242 | 2032 | ′ | PRIME |
″ | 8243 | 2033 | ″ | 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 | ‹ | SINGLE LEFT-POINTING ANGLE QUOTATION MARK |
› | 8250 | 203A | › | SINGLE RIGHT-POINTING ANGLE QUOTATION MARK |
※ | 8251 | 203B | REFERENCE MARK | |
8252 | 203C | DOUBLE EXCLAMATION MARK | ||
‽ | 8253 | 203D | INTERROBANG | |
‾ | 8254 | 203E | ‾ | OVERLINE |
‿ | 8255 | 203F | UNDERTIE | |
⁀ | 8256 | 2040 | CHARACTER TIE | |
⁁ | 8257 | 2041 | CARET INSERTION POINT | |
⁂ | 8258 | 2042 | ASTERISM | |
⁃ | 8259 | 2043 | HYPHEN BULLET | |
⁄ | 8260 | 2044 | ⁄ | 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 ❯
Типы кодировок
Существует несколько типов кодировок:
- ASCII – первая кодировка, которая была признана Американским национальным институтом мировых стандартов. Для ее использования задействуется 7 бит, где первые 128 значений включают в себя весь английский алфавит, числа, знаки и символы. Такая кодировка ранее использовалась на англоязычных ресурсах.
- Кириллица – вариант российской кодировки, используемый на русскоязычных сайтах и блогах.
- КОИ8 (код обмена информацией 8-битный) – была разработана для кодирования букв кириллических алфавитов. Распространена в Unix-подобных ОС и электронной почте. Постепенно исчезает в связи с приходом Юникода.
- Windows 1250-1258 – 8-битные кодировки, зародившиеся после появления операционной системы Windows. Например, 1250 – все языки центральной Европы, 1251 – кириллица. В ней присутствуют все буквы русского алфавита, а также символы (за исключением знака ударения).
- 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