Содержание

URL Код | Справочник HTML



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


URL — унифицированный указатель ресурсов

Веб браузеры запрашивают страницы с веб серверов с помощью URL.

URL — это адрес веб страницы, например: https://schoolsw3.com


Кодировка URL (процентное кодирование)

URL адреса могут быть отправлены только через интернет ASCII символьный набор.

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

Кодировка URL заменяет небезопасные символы ASCII на «%», за которым следуют две шестнадцатеричные знаки

Url адреса не могут содержать пробелы. Кодировка URL обычно заменяет пробел знаком плюс (+) или %20.


Попробуйте сами

Если Вы нажмете кнопку «Отправить» ниже, браузер закодирует ввод перед отправкой на сервер. Страница на сервере отобразит полученные входные данные.

Попробуйте другой ввод и нажмите кнопку «Отправить» еще раз.


Функции кодирования URL адреса

В JavaScript, PHP и php есть функции, которые могут быть использованы для URL кодирования строк.

В JavaScript можно использовать функцию encodeURI().

PHP имеет функцию rawurlencode(), и php имеет сервер функцию .URLEncode().

Нажмите кнопку «URL Encode», чтобы увидеть, как функция JavaScript кодирует текст.

Примечание: Функция JavaScript кодирует пространство как %20.


Справочник кодировки ASCII

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

Набор символов по умолчанию в HTML5, UTF-8.

СимволИз Windows-1252Из UTF-8
пространство%20%20
!%21%21
«%22%22
#%23%23
$%24%24
%%25%25
&%26%26
%27%27
(%28%28
)%29%29
*%2A%2A
+%2B%2B
,%2C%2C
%2D%2D
.%2E%2E
/%2F%2F
0%30%30
1%31%31
2%32%32
3%33%33
4%34%34
5%35%35
6%36%36
7%37%37
8%38%38
9%39%39
:%3A%3A
;%3B%3B
<%3C%3C
=%3D%3D
>%3E%3E
?%3F%3F
@%40%40
A%41%41
B%42%42
C%43%43
D%44%44
E%45%45
F%46%46
G%47%47
H%48%48
I%49%49
J%4A%4A
K%4B%4B
L%4C%4C
M%4D%4D
N%4E%4E
O
%4F
%4F
P%50%50
Q%51%51
R%52%52
S%53%53
T%54%54
U%55%55
V%56%56
W%57%57
X%58%58
Y%59%59
Z%5A%5A
[%5B%5B
\%5C%5C
]%5D%5D
^%5E%5E
_%5F%5F
`%60%60
a%61%61
b%62%62
c%63%63
d%64%64
e%65%65
f%66%66
g%67%67
h%68%68
i%69%69
j%6A%6A
k%6B%6B
l%6C%6C
m%6D%6D
n%6E%6E
o%6F%6F
p%70%70
q%71%71
r%72%72
s%73%73
t%74%74
u%75%75
v%76%76
w%77%77
x%78%78
y%79%79
z%7A%7A
{%7B%7B
|%7C%7C
}%7D%7D
~%7E%7E
 %7F%7F
`%80%E2%82%AC
%81%81
%82%E2%80%9A
ƒ%83%C6%92
%84%E2%80%9E
%85%E2%80%A6
%86%E2%80%A0
%87%E2%80%A1
ˆ%88%CB%86
%89%E2%80%B0
Š%8A%C5%A0
%8B%E2%80%B9
Œ%8C%C5%92
%8D%C5%8D
Ž%8E%C5%BD
%8F%8F
%90%C2%90
%91%E2%80%98
%92%E2%80%99
%93%E2%80%9C
%94%E2%80%9D
%95%E2%80%A2
%96%E2%80%93
%97%E2%80%94
˜%98%CB%9C
%99%E2%84
š%9A%C5%A1
%9B%E2%80
œ%9C%C5%93
%9D%9D
ž%9E%C5%BE
Ÿ%9F%C5%B8
 %A0%C2%A0
¡%A1%C2%A1
¢%A2%C2%A2
£%A3%C2%A3
¤%A4%C2%A4
¥%A5%C2%A5
¦%A6%C2%A6
§%A7%C2%A7
¨%A8%C2%A8
©%A9%C2%A9
ª%AA%C2%AA
«%AB%C2%AB
¬%AC%C2%AC
%AD%C2%AD
®%AE%C2%AE
¯%AF%C2%AF
°%B0%C2%B0
±%B1%C2%B1
²%B2%C2%B2
³%B3%C2%B3
´%B4%C2%B4
µ%B5%C2%B5
%B6%C2%B6
·%B7%C2%B7
¸%B8%C2%B8
¹%B9%C2%B9
º%BA%C2%BA
»%BB%C2%BB
¼%BC%C2%BC
½%BD%C2%BD
¾%BE%C2%BE
¿%BF%C2%BF
À%C0%C3%80
Á%C1%C3%81
Â%C2%C3%82
Ã%C3%C3%83
Ä%C4%C3%84
Å%C5%C3%85
Æ%C6%C3%86
Ç%C7%C3%87
È%C8%C3%88
É%C9%C3%89
Ê%CA%C3%8A
Ë%CB%C3%8B
Ì%CC%C3%8C
Í%CD%C3%8D
Î%CE%C3%8E
Ï%CF%C3%8F
Ð%D0%C3%90
Ñ%D1%C3%91
Ò%D2%C3%92
Ó%D3%C3%93
Ô%D4%C3%94
Õ%D5%C3%95
Ö%D6%C3%96
×%D7%C3%97
Ø%D8%C3%98
Ù%D9%C3%99
Ú
%DA%C3%9A
Û%DB%C3%9B
Ü%DC%C3%9C
Ý%DD%C3%9D
Þ%DE%C3%9E
ß%DF%C3%9F
à%E0%C3%A0
á%E1%C3%A1
â%E2%C3%A2
ã%E3%C3%A3
ä%E4%C3%A4
å%E5%C3%A5
æ%E6%C3%A6
ç%E7%C3%A7
è%E8%C3%A8
é%E9%C3%A9
ê%EA%C3%AA
ë%EB%C3%AB
ì%EC%C3%AC
í%ED%C3%AD
î%EE%C3%AE
ï%EF%C3%AF
ð%F0%C3%B0
ñ%F1%C3%B1
ò%F2%C3%B2
ó%F3%C3%B3
ô%F4%C3%B4
õ%F5%C3%B5
ö%F6%C3%B6
÷%F7%C3%B7
ø%F8%C3%B8
ù%F9%C3%B9
ú%FA%C3%BA
û%FB%C3%BB
ü%FC%C3%BC
ý%FD%C3%BD
þ%FE%C3%BE
ÿ%FF%C3%BF

Справочник кодировке URL

Управляющие символы в ASCII %00-%1F первоначально были разработаны для управления аппаратными устройствами.

Управляющие символы не имеют ничего общего с URL.

ASCII символОписаниеURL кодирование
NULнулевой символ%00
SOHначало заголовка%01
STXначало текста%02
ETXконец текста%03
EOTконец передачи%04
ENQзапрос%05
ACK подтвердить%06
BELзвонок%07
BSклавиша backspace%08
HTгоризонтальная табуляция%09
LFперевод строки%0A
VTвертикальная табуляция%0B
FFперевод страницы%0C
CRвозврат каретки%0D
SOсдвиг из%0E
SIсдвиг в%0F
DLEпобег канала передачи данных%10
DC1контроль устройств 1%11
DC2контроль устройств 2%12
DC3контроль устройств 3%13
DC4контроль устройств 4%14
NAKотрицательное подтверждение%15
SYNсинхронизировать%16
ETBконец передачи блока%17
CANаннулировать%18
EMконец средства%19
SUBзамена%1A
ESCescape%1B
FS файл сепаратор%1C
GSгруппа сепаратор%1D
RSзапись сепаратор%1E
USблок сепаратор%1F

URL Кодировка | Учебник HTML



URL адрес является еще одним словом для веб адреса.

URL адрес может состоять из слов (schoolsw3.com), или интернет-протокол (IP) адрес (31.31.196.133).

Большинство людей вводят имя при серфинге, т.к. имена легче запоминаются, чем цифры.


URL — унифицированный указатель ресурса

Веб-браузеры запрашивают страницы с веб-сервера, используя URL-адрес.

Унифицированный указатель ресурсов (URL) использует адрес документа (или другие данные) в сети.

Веб адрес, например https://www.schoolsw3.com/html/index.php следующие правила синтаксиса:

scheme://prefix.domain:port/path/filename

Объяснение:

  • scheme — определяет тип интернет услуги (чаще всего это http или https)
  • prefix — определяет префикс домена (по умолчанию для http является www)
  • domain — определяет в интернете доменное имя например:( schoolsw3.com)
  • port — определяет
    номер порта
    на хосте (по умолчанию для http является 80)
  • path — определяет путь на сервере (если исключен: корневой каталог сайта)
  • filename — определяет имя документа или ресурса

Общии URL Схемы

В таблице ниже перечислены некоторые общие схемы:

СхемаРасшифровка дляПрименение для
httpПротокол передачи гипертекстаОбщих веб страниц. Не зашифрован
httpsЗащищенный протокол передачи гипертекстаБезопасных веб страниц. Зашифрованы
ftpПротокол передачи файловСкачивания или загрузки файлов
file Файл на вашем компьютере

URL кодирование

URL адреса могут быть отправлены только через интернет ASCII символьный набор. Если URL адрес содержит символы, не входящие в набор ASCII, URL адрес должен быть преобразован.

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

Кодирование URL заменяет не ASCII символы с «%», за которым следуют шестнадцатеричные цифры.

URL-адрес не может содержать пробелы. Кодировки URL-адреса, как правило, заменяет пространство со знаком плюс (+), или %20.



Попробуйте Сами

Если Вы нажмете «Отправить», браузер URL адрес кодируют входной сигнал перед его отправкой на сервер.

Страницы на сервере будет отображать полученные материалы.

Попробуй другой вход и нажмите кнопку Отправить.


Примеры кодировки ASCII

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

Символьный набор по умолчанию в HTML5 является utf-8.

СимволОт Windows-1252От UTF-8
%80%E2%82%AC
£%A3%C2%A3
©%A9%C2%A9
®%AE%C2%AE
À%C0%C3%80
Á%C1%C3%81
Â%C2%C3%82
Ã%C3%C3%83
Ä%C4%C3%84
Å%C5%C3%85

Для полного ведения всех URL-кодировок, посетите наш справочник URL Справочник кодировок.


HTML Кодировки



Чтобы правильно отобразить html-документ, браузер должен знать какая кодировка символов использовалась при создании документа.
ASCII — одна из самых старых компьютерных кодировок, в которой каждому символу соответствует строго определенное число. Например, символу «a» соответствует число 97, а символу «A» — число 65.
Эта аббревиатура расшифровывается как American Standard Code for Information Interchange (американская стандартная кодировочная таблица для печатных символов и некоторых специальных кодов).
ASCII — это однобайтовая кодировка, в которую изначально заложено всего 128 символов: буквы латинского алфавита, арабские цифры и т.д.
Вы можете посмотреть на полный комплект Печатаемых символов ASCII.

Позже 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.

Таблица кодов символов ISO-8859-1

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

Для HTML4:

<meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1">

Для HTML5:

<meta charset="UTF-8">

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

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

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

&&num; + код + ;

Кодировка 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

Таблица кодов символов Windows-1251

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

Таблица кодов символов UTF-8 кирилица






Использование UTF-8 в HTTP заголовках / Блог компании Haulmont / Хабр

Как известно, HTTP 1.1 — это текстовой протокол передачи данных. HTTP сообщения закодированы, используя ISO-8859-1 (которую условно можно считать расширенной версией ASCII, содержащей умляуты, диакритику и другие символы, используемые в западноевропейских языках). При этом в теле сообщений можно использовать другую кодировку, которая должна быть обозначена в заголовке «Content-Type». Но что делать, если нам необходимо задать non-ASCII символы не в теле сообщения, а в самих заголовках? Наверное, самый распространенный кейс — это проставление имени файла в «Content-Disposition» заголовке. Это, казалось бы, довольно распространенная задача, но ее реализация не так очевидна.

TL;DR: Используйте кодировку, описанную в RFC 6266, для «Content-Disposition» и преобразуйте текст в латиницу (транслит) в остальных случаях.

Небольшая вводная в кодировки


В статье упоминаются и используются кодировки US-ASCII (часто именуемую просто ASCII), ISO-8859-1 и UTF-8. Это небольшая вводная в эти кодировки. Раздел предназначен для разработчиков, которые редко или совсем не работают с кодировками и успели подзабыть их.8 = 256 вариантов.

ISO-8859-1 — кодировка, предназначенная для западноевропейских языков. Содержит французскую диакритику, немецкие умляуты и т.д.

Кодировка содержит 256 символов и, таким образом, может быть представлена одним байтом. Первая половина (128 символов) полностью совпадает с ASCII. Таким образом, если первый бит = 0, то это обычный ASCII символ. Если 1, то это символ, специфичный для ISO-8859-1.

UTF-8 — одна из самых известных кодировок наравне с ASCII. Способна кодировать 1.112.064 символов. Размер каждого символа варьируется от 1-го до 4-х байт (раньше допускались значения до 6 байт).

Программа, работающая с этой кодировкой, определяет по первым битам, как много байтов входит в символ. Если октет начинается с 0, то символ представлен одним байтом. 110 — два байта, 1110 — три байта, 11110 — 4 байта.

Как и в случае с ISO-8859-1, первые 128 символов полностью соответствуют ASCII. Поэтому тексты, использующие только ASCII символы, будут абсолютно идентичны в бинарном представлении, вне зависимости от того, использовалась ли для кодирования US-ASCII, ISO-8859-1 или UTF-8.

Использование UTF-8 в теле сообщения


Прежде чем перейти к заголовкам, давайте быстро взглянем, как использовать UTF-8 в теле сообщений. Для этого используется заголовок «Content-Type».

Если «Content-Type» не задан, то браузер должен обрабатывать сообщения, как будто они написаны в ISO-8859-1. Браузер не должен пытаться отгадать кодировку и, тем более, игнорировать «Content-Type». Но, что реально отобразится в ситуации, когда «Content-Type» не передан, зависит от реализации браузера. Например, Firefox сделает согласно спецификации и прочитает сообщение, будто оно было закодировано в ISO-8859-1. Google Chrome, напротив, будет использовать кодировку операционной системы, которая для многих российских пользователей равна Windows-1251. В любом случае, если сообщение было в UTF-8, то оно будет отображено некорректно.

Проставляем UTF-8 сообщение в значение заголовка


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

Что будет, если просто взять и записать UTF-8 значение в значение заголовка? Мы видели, что такой трюк с телом сообщения приведет к тому, что значение будет просто прочитано в ISO-8859-1. Логично было бы предположить, что то же самое произойдет с заголовком. Но это не так. Фактически, во многих, если не в большинстве, случаях такое решение будет работать. Сюда включаются старые айфончики, IE11, Firefox, Google Chrome. Единственным из находящихся у меня под рукой браузеров, когда я писал эту статью, который не захотел работать с таким заголовком, является Edge.

Такое поведение не зафиксировано в спецификациях. Возможно, разработчики браузеров решили облегчить жизнь разработчиков и автоматически определять, что в заголовках сообщение закодировано в UTF-8. В общем-то, это не является такой сложной задачей. Смотрим на первый бит: если 0, то ASCII, если 1 — то, возможно, UTF-8.

Нет ли в этом случае пересечения с ISO-8859-1? На самом деле, практически нет. Возьмем для примера UTF-8 символ из 2-х октетов (русские буквы представлены двумя октетами). Символ в бинарном представили будет иметь вид: 110xxxxx 10xxxxxx. В HEX представлении: [0xC0-0x6F] [0x80-0xBF]. В ISO-8859-1 этими символами едва ли можно закодировать что-то, несущее смысловую нагрузку. Поэтому риск того, что браузер неправильно расшифрует сообщение, очень мал.

Однако, при попытке использовать этот способ можно столкнуться с техническими проблемами: ваш веб-сервер или фреймворк может просто не разрешить записывать UTF-8 символы в значение заголовка. Например, Apache Tomcat вместо всех UTF-8 символов проставляет 0x3F (вопросительный знак). Разумеется, это ограничение можно обойти, но, если само приложение бьет по рукам и не дает что-то сделать, то, возможно, вам и не нужно это делать.

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

Транслит


Я думаю, что использовать транслит — eto bolee horoshee reshenie. Многие крупные популярные русские ресурсы не брезгуют использовать транслит в названиях файлов. Это гарантированное решение, которое не сломается с выпуском новых браузеров и которое не надо тестировать отдельно на каждой платформе. Хотя, разумеется, надо подумать, как преобразовывать весь спектр возможных символов, что может быть не совсем тривиально. Например, если приложение рассчитано на российскую аудиторию, то в имя файла могут попасть татарские буквы ә и ң, которые надо как-то обработать, а не просто заменять на «?».

RFC 2047


Как я уже упомянул, томкат не позволил мне проставить UTF-8 в заголовке сообщения. Отражена ли эта особенность поведения в Java docs для сервлетов? Да, отражена:

Упоминается RFC 2047. Я пробовал кодировать сообщения, используя этот формат, — браузер меня не понял. Этот метод кодировки не работает в HTTP. Хотя работал раньше. Вот, например, тикет на удаление поддержки этой кодировки из Firefox.

RFC 6266


В тикете, ссылка на который содержится в предыдущем разделе, есть упоминания, что даже после прекращения поддержки RFC 2047, все еще есть способ передавать UTF-8 значения в названии скачиваемых файлов: RFC 6266. На мой взгляд, это самое правильно решение на сегодняшний день. Многие популярные интернет ресурсы используют его. Мы в CUBA Platform также используем именно этот RFC для генерации «Content-Disposition».

RFC 6266 — это спецификация, описывающая использование “Content-Disposition” заголовка. Сам способ кодировки подробно описан в другой спецификации — RFC 8187.

Параметр “filename” содержит название файла в ASCII, “filename*” — в любой необходимой кодировке. При наличии обоих атрибутов “filename” игнорируется во всех современных браузерах (включая IE11 и старые версии Safari). Совсем старые браузеры, напротив, игнорируют “filename*”.

При использовании данного способа кодирования в параметре сначала указывается кодировка, после » идет закодированное значение. Видимые символы из ASCII кодирования не требуют. Остальные символы просто пишутся в hex представлении, со стоящим «%» перед каждым октетом.

Что делать с другими заголовками?


Кодирование, описанное в RFC 8187, не является универсальным. Да, можно поместить в заголовок параметр с * префиксом, и это, возможно, будет даже работать для некоторых браузеров, но спецификация предписывает не делать так.

В каждом случае, где в заголовках поддерживается UTF-8, на настоящий момент есть явное упоминание об этом в релевантном RFC. Помимо «Content-Disposition» данная кодировка используется, например, в Web Linking и Digest Access Authentication.

Следует учесть, что стандарты в этой области постоянно меняются. Использование описанной выше кодировки в HTTP было предложено лишь в 2010. Использование данной кодировки именно в «Content-Disposition» было зафиксировано в стандарте в 2011. Несмотря на то, что эти стандарты находятся лишь на стадии «Proposed Standard», они поддержаны повсеместно. Вариант, что в будущем нас ожидают новые стандарты, которые позволят более унифицировано работать с различными кодировками в заголовках, не исключен. Поэтому остается только следить за новостями в мире стандартов HTTP и уровня их поддержки на стороне браузеров.

Кодировка HTML страницы и атрибуты — Знакомство с HTML — codebra

Как добавить кодировку страницы?

Вы когда-нибудь видели на странице в интернете какие-то знаки вопроса, квадратики и прочее вместо текста? Думаю, что видели. Так вот, у этого сайта проблема с кодировкой, вполне возможно разработчик ее не указал. Кодировка, простыми словами, это таблица содержащая набор символов. Для того чтобы добавить кодировку сайта, нужен многофункциональный тег <meta> , о нем написан целый урок. Итак, чтобы браузер понял, какую кодировку вы используете, применяйте эту строку:

Код HTML

<meta charset = "utf-8">

Что такое кодировка?

Кодировка, это набор символов, представленный в таблице. Таблица содержит сам символ и его код, например, двоичный (нули и единицы). Термин «набор символов» редко используется, чаще всего говорят «кодировка». На данный момент популярны две кодировки: ASCII и UTF-8. На нашем сайте используется кодировка UTF-8.

Подробнее о кодировке?

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

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

Что такое атрибуты?

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

Имя атрибута необходимо писать в нижнем регистре. Хотя HTML5 и позволяет писать в любом регистре и не использовать кавычки, все же так не рекомендуется делать.

Кодировка html сделает ваш у интернет страничку читаемой

 

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

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

Почему кодировка так важна и какие существуют типы?

Как только сфера IT начала развиваться, вместе с ней развивались и совершенствовались кодировки. Почему же они так важны для веб-разработки и сайтостроения?

На самом деле корректное отображение символов на дисплее девайсов – это достаточно сложная штука, ведь это не прямой процесс. Любой символ относящийся к кириллице, латинице, цифрам и другим алфавитам формируется благодаря двум параметрам:

  1. Векторное представление (формы) всевозможных единиц разных алфавитов, которые хранятся в документах со шрифтами на каждом персональном компьютере;
  2. Номер или код, по которому можно найти указанный символ в этих документах.

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

Как же ОС подставляет нужные буквы и знаки? Для нее все очень просто. Осуществляется поиск символа по считанному коду в документе шрифтов и после подставляется.

На сегодняшний день существует несколько основных стандартов кодировок и их подтипов. К ним относятся ASCII и ее дочерние типы CP866, KOI8-R и Windows 1251, Unicode с кодировками UTF. Однако на сегодняшний день все лавры почета достались UTF-8. И это оправдано. Чтобы вы четко понимали сложившуюся ситуацию, переходим к следующей главе.

Досье на Аски

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

ASCII (Аски) и первые наследники

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

Первой в себя включила алфавит русского языка CP866. Помимо этого, в расширенную версию входила и псевдографика.

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

В тот «железный век» IT-технологий не было такого изобилия графических ОС, поэтому псевдографика спасала разработчиков, помогая им создавать более-менее разнообразные веб-страницы.

Переход в современность – Windows 1251

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

Windows 1251 еще называют «в народе» кириллицей. Все потому что в данной таблице место ненужных знаков заняли недостающие символы русского и других славянских языков, а также аналогичная типографика.

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

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

Приход новой власти

Спасательным кругом оказался новый стандарт кодирования алфавитов – Unicode. Все его кодировки имеют в названии UTF, а после через дефис количество битов для 1-го символа.

 

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

После выделяемая память уменьшилась до 16 бит. И наконец дошла до 8.

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

Благодаря этому латиница и другие простые символы кодируются 1-м байтом, как и в ASCII. А вот «тяжелые» знаки могут быть представлены от одного и до шести байт последовательно. Стоит отметить, что помимо алфавитов, в таблицах Юникода можно найти всевозможные закорючки, смайлы, греческие буквы, цветы и другие нестандартные элементы.

Вот мы и разобрали, почему UTF-8 стала лидером.

Программы для перевода текста из одной кодировки в другую

На самом деле изменить формат кодирования файлов очень просто и доступно в большинстве программ: «Блокнот», «Notepad++», «PSPad» и другие аналоги предоставляют такую возможность, а также профессиональные продукты наподобие Visual Studio, IntelliJ IDEA и т.д.

Для новичков подойдет и работа в «Блокноте». Просто откройте нужный файл, выберете «Сохранить как…» и снизу диалогового окна измените вид кодировки.

Для более продвинутых отличным инструментом станет Notepad++. Он предлагает широкий выбор различных кодировок, в том числе UTF-8 с BOM и без него. Хотя предпочтительнее выбирать второй вариант.

Хочу сказать несколько слов о BOM. Полное название Byte Order Mark, что в русскоязычных кругах более известно, как «маркер последовательности (порядка) байтов». Такая метка устанавливается в самом начале документа с текстом и обычно используется для обмена файлами. Она занимает 3 байта, которые выглядят следующим образом: ef bb bf.

Однако, чтобы не было проблем с распознаванием кодировки файлов, стоит использовать UTF-8 без метки.

Набор инструментов для девелоперов

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

Первый вариант – это указать в документе .htaccess «AddDefaultCharset UTF-8».

Второй – в теге meta объявить значение для charset. Данный атрибут появился с выходом в свет html5. В качестве примера я прикрепил программную реализацию.

1
2
3
4
5
6
7
8
9
10
<!DOCTYPE html>
<html>
 <head>
  <meta charset="utf-8">
  <title>Пример с charset</title>
 </head>
 <body> 
  <h3>Привычный вид text-а! Все 4 слова и 2 числа отобразились корректно.<h3>
 </body>
</html>

<!DOCTYPE html> <html> <head> <meta charset=»utf-8″> <title>Пример с charset</title> </head> <body> <h3>Привычный вид text-а! Все 4 слова и 2 числа отобразились корректно.<h3> </body> </html>

Поэкспериментируйте и подставьте другие названия кодировок.

Если материал статьи был вам полезен и понравился, то подписывайтесь на обновления блога и делитесь ссылкой на статьи с друзьями. Желаю удачи. Пока-пока!

С уважением, Роман Чуешов

 

 

Загрузка…

Прочитано: 204 раз

Кодировка HTML


Чтобы правильно отображать HTML-страницу, веб-браузер должен знать какой набор символов использовать.


Из ASCII в UTF-8

ASCII был первым стандартом кодировки символов. ASCII определяет 128 различных символов, которые могут использоваться в Интернете: цифры (0-9), английские буквы (A-Z) и некоторые специальные персонажи нравятся! $ + — () @ <>.

ISO-8859-1 был набором символов по умолчанию для HTML 4. Этот набор символов поддерживаются 256 различных кодов символов.HTML 4 также поддерживает UTF-8.

ANSI (Windows-1252) был исходным набором символов Windows. ANSI идентичен согласно ISO-8859-1, за исключением того, что ANSI содержит 32 дополнительных символа.

Набор символов по умолчанию для HTML5 — UTF-8, который охватывает почти все персонажи и символы в мире!


Атрибут кодировки HTML

Чтобы правильно отображать HTML-страницу, веб-браузер должен знать набор символов, используемый на странице.

Это указано в теге :



Различия между наборами символов

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

9 0047 *900 47 7 900 47 Заглавная латинская буква G 90 047 W] 900 кинжал 90 045 900 47 9 0047 микро знак 8 900 47 226
Число ASCII ANSI 8859 UTF-8 Описание
32 пространство
33!!!! восклицательный знак
34 «» «» кавычка
35 # # # # цифровой знак
36 $ $ $ $ Знак доллара
37%%%% Знак процента
38 & & и и амперсанд
39 апостроф
40 ( ( ( ( левая скобка
41)))) правая скобка
42 * * * звездочка
43 + + + + знак плюса
44,,,, запятая
45 дефис-минус
46.... полная остановка
47//// солидус
48 0 0 0 0 цифра ноль
49 1 1 1 1 1 цифра
50 2 2 2 2 2 цифра
51 3 3 3 3 цифра три
52 4 4 4 4 цифра четыре
53 5 5 5 5 цифра пять
54 6 6 6 6 цифра шесть
55 7 7 7 цифра семь
56 8 8 8 8 цифра восемь
57 9 9 9 9 цифра девять
58:::: двоеточие
59;;;; точка с запятой
60 < < < < знак «меньше»
61 = = = = знак равенства
62>>>> Знак «больше»
63???? вопросительный знак
64 @ @ @ @ коммерческий в
65 A A A A Заглавная латинская буква A
66 B B B B Заглавная латинская буква B
67 C C C C Заглавная латинская буква C
68 D D D D Заглавная латинская буква D
69 E E E E Заглавная латинская буква E
70 F F F F Заглавная латинская буква F
71 G G G G
72 H H H H Заглавная латинская буква H
73 I I I I Заглавная латинская буква I
74 J J J J Заглавная латинская буква J
75 K K K K Заглавная латинская буква K
76 L L L L Заглавная латинская буква L
77 M M M M Заглавная латинская буква M
78 N N N N Заглавная латинская буква N
79 O O O O 90 048 Заглавная латинская буква O
80 P P P P Заглавная латинская буква P
81 Q Q Q Q Латинская заглавная буква буква Q
82 R R R R Заглавная латинская буква R
83 S S S S Заглавная латинская буква S
84 T T T T Заглавная латинская буква T
85 U U U U Заглавная латинская буква U
86 V V V V Заглавная латинская буква V
87 W W W Заглавная латинская буква W
88 X X X X Заглавная латинская буква X
89 Y Y Y Y Заглавная латинская буква Y
90 Z Z Z Z Заглавная латинская буква Z
91 [ [ [ [ левая квадратная скобка
92 \ \ \ \ обратный солидус
93]]]] правая квадратная скоба
94 ^ ^ ^ ^ Акцент с циркумфлексом
95 _ _ _ _ 900 48 low line
96 `` `` Grave Accent
97 a a a a Строчная латинская буква a
98 b b b b Строчная латинская буква b
99 c c c c Строчная латинская буква c
100 d d d d Строчная латинская буква d
101 e e e e Строчная латинская буква e
102 f f f f Строчная латинская буква f
103 g g g g Строчная латинская буква le tter g
104 h h h h Строчная латинская буква h
105 i i i i Строчная латинская буква i
106 j j j j Строчная латинская буква j
107 k k k k Строчная латинская буква k
108 l l l l Строчная латинская буква l
109 m m m m Строчная латинская буква m
110 n n n n Строчная латинская буква n
111 o o o o Строчная латинская буква tter o
112 p p p p Строчная латинская буква p
113 q q q q Строчная латинская буква q
114 r r r r Строчная латинская буква r
115 s s s s Строчная латинская буква s
116 t t t t Строчная латинская буква t
117 u u u u Строчная латинская буква u
118 v v v v Строчная латинская буква v
119 w w w w Строчная латинская буква tter w
120 x x x x Строчная латинская буква x
121 y y y y Строчная латинская буква y
122 z z z z Строчная латинская буква z
123 { { { { левая фигурная скобка
124 | | | | вертикальная линия
125}}}} правая фигурная скобка
126 ~ ~ ~ ~ тильда
127 DEL
128 евро знак
129 НЕ ИСПОЛЬЗУЕТСЯ
130 одинарная кавычка с малым числом 9
131 ƒ Строчная латинская буква f с крючком
132 двойные кавычки low-9
133 многоточие по горизонтали
134 кинжал
135
136 ˆ модификатор букв с циркумфлексом акцент
137 знак промилле
138 Š Заглавная латинская буква S с кароном
139 одинарная кавычка с левым углом
140 Œ Латиница c апитальная лигатура OE
141 НЕ ИСПОЛЬЗУЕТСЯ
142 Ž Заглавная латинская буква Z с кароном
143 НЕ ИСПОЛЬЗУЕТСЯ
144 НЕ ИСПОЛЬЗУЕТСЯ
145 левая одинарная кавычка
146 правая одинарная кавычка
147 левая двойная кавычка
148 правый двойная кавычка
149 пуля
150 en тире
151 длинное тире
152 ˜ маленькая тильда
153 знак товарного знака
154 š Строчная латинская буква s с кароном
155 одинарная кавычка с прямым углом
156 œ Латинская маленькая лигатура oe
157 НЕ ИСПОЛЬЗУЕТСЯ
158 ž Латинская строчная буква z с кароном
159 Ÿ Заглавная латинская буква Y с диэрезисом
160 без перерыва
161 ¡ ¡ ¡ перевернутый восклицательный знак
162 ¢ ¢ ¢ знак центов
163 £ £ £ знак фунта
164 ¤ ¤ ¤ знак валюты
165 ¥ ¥ ¥ Йен знак
166 ¦ ¦ ¦ сломанный стержень
167 § § § знак раздела
168 ¨ ¨ ¨ диэрезис
169 © © © знак авторского права
170 ª ª ª женский порядковый указатель
171 «« « левый двойной угол кавычки
172 ¬ ¬ ¬ без подписи
173 мягкий дефис
174 ® ® ® зарегистрированный знак
175 ¯ ¯ ¯ макрон
176 ° ° ° знак градуса
177 ± ± ± знак плюс-минус
178 ² ² ² верхний индекс два
179 ³ ³ ³ три верхних индекса
180 ´ ´ ´ 900 острый акцент
181 µ µ µ
182 знак пилкроу
183 · · · средняя точка
184 ¸ ¸ ¸ седилла
185 ¹ ¹ ¹ верхний индекс
186 º º º 900 мужской порядковый номер
187 »» » двойная угловая кавычка, указывающая вправо
188 ¼ ¼ ¼ вульгарная дробь одна четверть
189 ½ ½ ½ vulga r дробь одна половина
190 ¾ ¾ ¾ вульгарная фракция три четверти
191 ¿ ¿ ¿ перевернутый вопросительный знак
192 À À À Заглавная латинская буква A с тупым шрифтом
193 Á Á Á Заглавная латинская буква A с острым ударением
194 Â Â Â Заглавная латинская буква A с циркумфлексом
195 Ã Ã Ã Заглавная латинская буква A с тильдой
196 Ä Ä Ä Заглавная латинская буква A с тремой
197 Å Å Å Заглавная латинская буква A с кольцом выше
198 Æ Æ Æ Заглавная латинская буква AE
199 Ç Ç Ç Заглавная латинская буква C с седилем
200 È È È Заглавная латинская буква E с могилой
201 É É É Заглавная латинская буква E с острым ударением
202 Ê Ê Ê Заглавная латинская буква E с циркумфлексом
203 Ë Ë Ë Заглавная латинская буква E с тремой
204 9 0048 Ì Ì Ì Заглавная латинская буква I с надстрочным знаком
205 Í Í Í Заглавная латинская буква I с острым ударением
206 Î Î Î Заглавная латинская буква I с циркумфлексом
207 Ï Ï Ï Заглавная латинская буква I с диэрезисом
208 ì ì Заглавная латинская буква Eth
209 Ñ Ñ Ñ Заглавная латинская буква N с тильдой
210 Ò Ò Ò Латинская заглавная буква O с тупым упором
211 Ó Ó Ó Заглавная латинская буква O с острым ударением
212 Ô Ô Ô Заглавная латинская буква O с циркумфлексом
213 Õ Õ Õ Латинская заглавная буква O с тильдой
214 Ö Ö Ö Латинская заглавная буква O с диэрезисом
215 × × × знак умножения
216 Ø Ø Ø Заглавная латинская буква O со штрихом
217 Ù Ù Ù Заглавная латинская буква U со штрихом
218 Ú Ú Ú Латинская заглавная l etter U с острым углом
219 Û Û Û Заглавная латинская буква U с циркумфлексом
220 Ü Ü Ü Заглавная латинская буква U с диэрезисом
221 Ý Ý Ý Заглавная латинская буква Y с острым ударением
222 Þ Þ Þ Заглавная латинская буква Thorn
223 ß ß ß Строчная латинская буква s
224 à à à Строчная латинская буква a с тупым шрифтом
225 á á á Строчная латинская буква а с острым ударением
â â â Строчная латинская буква a с циркумфлексом
227 ã ã ã Строчная латинская буква a с тильдой
228 ä ä ä Строчная латинская буква a с диэрезисом
229 å å å Строчная латинская буква a с кольцом над ним
230 æ æ æ Строчная латинская буква ae
231 ç ç ç Строчная латинская буква c с седилем
232 è è è Строчная латинская буква e с тупым ударением
233 é é é Строчная латинская буква e с острым ударением
234 ê ê ê Латинская строчная буква e с циркумфлексом
235 ë ë ë Строчная латинская буква e с тремой
236 ì ì ì Строчная латинская буква i с тупым ударением
237 í í í Строчная латинская буква i с острым углом
238 î î î Строчная латинская буква i с циркумфлексом
239 ï ï ï Строчная латинская буква i с тремой
240 ð ð ð Строчная латинская буква eth
241 ñ ñ ñ Строчная латинская буква n с тильдой
242 ò ò ò Строчная латинская буква o с могилой
243 Строчная латинская буква o с острым ударением
244 ô ô ô Строчная латинская буква o с циркумфлекс
245 x x x Строчная латинская буква o с тильдой
246 ö ö ö Строчная латинская буква o с диэрезисом
247 ÷ ÷ ÷ делительный знак
248 ø ø ø Строчная латинская буква o со штрихом
249 ù ù ù Строчная латинская буква u со штрихом
250 ú ú ú Строчная латинская буква u с острым ударением
251 û û û Строчная латинская буква с циркумфлексом
252 ü ü ü Строчная латинская буква u с диэрезисом
253 ý ý ý Строчная латинская буква y с острым ударением
254 þ þ þ Строчная латинская шип
255 ÿ ÿ ÿ Строчная латинская буква y с тремой

Набор символов ASCII

ASCII использует значения от 0 до 31 (и 127) для управляющих символов.

ASCII использует значения от 32 до 126 для букв, цифр и символов.

ASCII не использует значения от 128 до 255.


Набор символов ANSI (Windows-1252)

ANSI идентичен ASCII для значений от 0 до 127.

ANSI имеет собственный набор символов для значений от 128 до 159.

ANSI идентичен UTF-8 для значений от 160 до 255.


Набор символов ISO-8859-1

ISO-8859-1 идентичен ASCII для значений от 0 до 127.

ISO-8859-1 не использует значения от 128 до 159.

ISO-8859-1 идентичен UTF-8 для значений от 160 до 255.


Набор символов UTF-8

UTF-8 идентичен ASCII для значений от 0 до 127.

UTF-8 не использует значения от 128 до 159.

UTF-8 идентичен ANSI и 8859-1 для значений от 160 до 255.

UTF-8 продолжает значение 256 с более чем 10 000 различных символы.

Для более подробного ознакомления ознакомьтесь с нашим полным справочником по набору символов HTML.



HTML Кодировка URL


URL — это другое слово для обозначения веб-адреса.

URL-адрес может состоять из слов (например, w3schools.com) или IP-адреса (например, 192.68.20.50).

Большинство людей вводят имя во время серфинга, потому что имена легче запомнить, чем числа.


URL — унифицированный указатель ресурсов

Веб-браузеры запрашивают страницы с веб-серверов с помощью URL-адреса.

Унифицированный указатель ресурсов (URL) используется для адресации документа (или других данных) в Интернете.

Веб-адрес, например https://www.w3schools.com/html/default.asp следует этим правилам синтаксиса:

схема: //prefix.domain: порт / путь / имя файла

Пояснение:

  • схема — определяет тип интернет-сервиса (наиболее распространенный — http или https )
  • префикс — определяет префикс домена (по умолчанию для http www )
  • domain — определяет доменное имя Internet (например, w3schools.com)
  • порт — определяет номер порта на хосте (по умолчанию для http 80 )
  • путь — определяет путь на сервере (если не указано: корневой каталог сайта)
  • filename — определяет имя документа или ресурса

Общие схемы URL

В таблице ниже перечислены некоторые общие схемы:

Схема Сокращение для Используется для
http Протокол передачи гипертекста Общие веб-страницы.Не зашифровано
https Протокол безопасной передачи гипертекста Защищенные веб-страницы. Зашифрованный
ftp Протокол передачи файлов Скачивание или закачка файлов
файл Файл на вашем компьютере


Кодировка URL

URL-адресов можно отправлять только через Интернет с помощью Набор символов ASCII.Если URL-адрес содержит символы вне набора ASCII, URL-адрес должен быть преобразован.

Кодировка

URL преобразует символы, отличные от ASCII, в формат, который можно передавать через Интернет.

Кодировка

URL заменяет символы, отличные от ASCII, на «%», за которым следуют шестнадцатеричные цифры.

URL-адреса не могут содержать пробелов. Кодировка URL-адреса обычно заменяет пробел знаком плюс (+) или% 20.


Попробуйте сами

Если вы нажмете «Отправить», браузер закодирует ввод по URL-адресу перед его отправкой на сервер.

Страница на сервере отобразит полученный ввод.

Попробуйте ввести другие данные и снова нажмите «Отправить».


Примеры кодирования ASCII

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

Набор символов по умолчанию в HTML5 — UTF-8.

Персонаж из Windows-1252 из UTF-8
% 80% E2% 82% AC
£% A3% C2% A3
©% A9% C2% A9
®% AE% C2% AE
À% C0% C3% 80
Á% C1% C3% 81
Â% C2% C3% 82
Ã% C3% C3% 83
Ä% C4% C3% 84
Å% C5% C3% 85

Чтобы получить полную информацию обо всех кодировках URL, посетите наш Справочник по кодировке URL.



Объявление кодировки символов в HTML

Целевая аудитория: Авторы HTML (использующие редакторы или сценарии), разработчики сценариев (PHP, JSP и т. Д.), Менеджеры веб-проектов и все, кому нужно введение в то, как объявлять кодировку символов в своем файле HTML.

Как мне объявить кодировку моего файла HTML?

Всегда следует указывать кодировку, используемую для страницы HTML или XML. Если вы этого не сделаете, вы рискуете, что символы в вашем контенте будут неправильно интерпретированы.Это не только вопрос удобочитаемости человека, все чаще машинам необходимо понимать и ваши данные. Объявление кодировки символов также необходимо для обработки символов, отличных от ASCII, вводимых пользователем в формы, в URL-адресах, сгенерированных сценариями, и т. Д. В этой статье описывается, как это сделать для файла HTML.

Если вам нужно лучше понять, что такое символы и кодировки символов, см. Статью Кодировки символов для начинающих . Информацию об объявлении кодировок для таблиц стилей CSS см. В разделе Объявления кодировки символов CSS .

Всегда объявляйте кодировку вашего документа с помощью элемента meta с атрибутом charset или с использованием атрибутов http-Equ и content (называемых директивой pragma). Объявление должно полностью помещаться в первые 1024 байта в начале файла, поэтому лучше всего помещать его сразу после открывающего тега head .





...





..

Неважно, какой вы используете, но проще набрать первый. Также не имеет значения, набираете ли вы UTF-8 или utf-8 .

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

Если у вас есть доступ к настройкам сервера, вы также должны подумать, имеет ли смысл использовать HTTP-заголовок. Отметьте, однако, , что, поскольку заголовок HTTP имеет более высокий приоритет, чем мета-объявления в документе , авторы контента всегда должны учитывать, объявлена ​​ли уже кодировка символов в заголовке HTTP. Если это так, должен быть установлен мета-элемент для объявления той же кодировки.

Вы можете обнаружить любые кодировки, отправленные заголовком HTTP, с помощью средства проверки интернационализации.

А как насчет отметки порядка байтов?

Если у вас есть метка порядка байтов (BOM) UTF-8 в начале вашего файла, то последние версии браузера, отличные от Internet Explorer 10 или 11, будут использовать это, чтобы определить, что кодировка вашей страницы - UTF-8. Он имеет более высокий приоритет, чем любое другое объявление, включая заголовок HTTP.

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

Подробнее о метке порядка байтов.

Должен ли я указывать кодировку в заголовке HTTP?

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

Авторы контента всегда должны обеспечивать соответствие деклараций HTTP декларациям в документе.

Плюсы и минусы использования HTTP-заголовка

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

Информация заголовка HTTP имеет наивысший приоритет, когда она конфликтует с декларациями в документе, отличными от отметки порядка байтов. Средний серверы, которые перекодируют данные (т. е. конвертируют в другую кодировку), могут воспользоваться этим, чтобы изменить кодировку документа перед его отправкой на небольшие устройства, которые распознают только несколько кодировки. Неясно, широко ли используется эта перекодировка в настоящее время. Если это так, и он преобразует контент в кодировку, отличную от UTF-8, существует высокий риск потери данных, и это не является хорошей практикой.

С другой стороны, есть ряд потенциальных недостатков:

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

  • Настройки сервера

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

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

    Аналогично, если кодировка символов объявлена ​​только в заголовке HTTP, эта информация больше не доступна для файлов во время редактирования или когда они обрабатываются такими вещами, как XSLT или скрипты, или когда они отправляются на перевод и т. д.

Так следует ли мне использовать этот метод?

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

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

(Некоторые люди утверждают, что редко бывает уместно объявлять кодировку в заголовке HTTP, если вы собираетесь повторить ее в содержание документа.В этом случае они предлагают, чтобы HTTP-заголовок ничего не говорил о кодировке документа. Обратите внимание, что это обычно означает принятие мер, чтобы отключить любые настройки сервера по умолчанию.)

Работа с полиглотами и форматами XML

XHTML5: Документ XHTML5 обслуживается как XML и имеет синтаксис XML. Парсеры XML не распознают объявления кодировки в мета-элементах . Они распознают только декларацию XML. Вот пример:


Объявление XML требуется только в том случае, если страница не обслуживается как UTF-8 (или UTF-16), но может быть полезно включить его, чтобы разработчики, тестировщики или менеджеры по производству переводов могли визуально проверить кодировку документ, посмотрев на источник.

Разметка полиглота: Страница, использующая разметку полиглота, использует подмножество HTML с синтаксисом XML, которое может быть проанализировано с помощью синтаксического анализатора HTML или XML.Он описан в Polyglot Markup: надежный профиль словаря HTML5 .

Поскольку документ полиглота должен быть в кодировке UTF-8, вам не нужно и даже не следует использовать объявление XML. С другой стороны, если файл должен читаться как HTML, вам нужно будет объявить кодировку, используя мета-элемент , отметку порядка байтов или заголовок HTTP.

Поскольку объявление в элементе meta будет распознаваться только анализатором HTML, если вы используете подход с атрибутом content , его значение должно начинаться с text / html; .

Если вы используете мета-элемент с атрибутом charset , это не то, что вам нужно учитывать.

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

Работа с кодировками, отличными от UTF-8

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

Хотя обычно они называются именами кодировки , в действительности они относятся к кодировкам, а не к наборам символов. Например, набор символов Юникода или «репертуар» может быть закодирован по трем различным схемам кодирования.

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

Новая спецификация Encoding теперь предоставляет список, который был протестирован на реальных реализациях браузеров. Вы можете найти список в таблице в разделе «Кодировки». Лучше всего использовать имена из левого столбца этой таблицы.

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

Не придумывайте свои собственные имена кодировок, которым предшествует x- . Это плохая идея, поскольку она ограничивает совместимость.

Работа с устаревшими форматами HTML

HTML 4.01 не определяет использование атрибута charset с элементом meta , но любой недавний крупный браузер все равно обнаружит его и будет использовать, даже если страница объявлена ​​как HTML4, а не HTML5.Этот раздел актуален только в том случае, если у вас есть другая причина, кроме обслуживания браузера для соответствия более старому формату HTML. Он описывает любые отличия от раздела ответов выше.

Для страниц, обслуживаемых как XML, см. Работа с многоязычными форматами и XML.

HTML4: Как уже упоминалось выше, для полного соответствия HTML 4.01 вам необходимо использовать директиву pragma, а не атрибут charset .

XHTML 1.x используется как text / html: Также требуется директива pragma для полного соответствия HTML 4.01, а не атрибут charset . Вам не нужно использовать объявление XML, поскольку файл обслуживается как HTML.

XHTML 1.x используется как XML: Используйте кодировку объявления объявления XML в первой строке страницы. Убедитесь, что перед ним ничего нет, включая пробелы (хотя отметка порядка байтов в порядке).

Атрибут charset в ссылке

В

HTML5 не рекомендуется использовать атрибут charset в элементе a или link , поэтому вам следует избегать его использования.Он возник в спецификации HTML 4.01 для использования с элементами a , link и script и должен был указывать кодировку документа, на который вы ссылаетесь.

Он был предназначен для использования во встроенном элементе ссылки, например:

Плохой код. Не копируйте!

См. Наш список публикаций .

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

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

Этот способ указания кодировки документа имеет самый низкий приоритет (т. Е. Если кодировка объявлена ​​каким-либо другим способом, это будет проигнорировано). Это означает, что вы также не можете использовать это для исправления неверных объявлений.

Работа с UTF-16

По результатам выборки Google из нескольких миллиардов страниц, меньше 0.01% страниц в Интернете закодированы в UTF-16. На UTF-8 приходится более 80% всех веб-страниц, если вы включаете его подмножество, ASCII, и более 60%, если вы этого не делаете. Настоятельно не рекомендуется использовать UTF-16 в качестве кодировки страницы.

Если по какой-то причине у вас нет выбора, вот несколько правил объявления кодировки. Они отличаются от кодировок для других кодировок.

Спецификация HTML5 запрещает использование мета-элемента для объявления UTF-16, поскольку значения должны быть совместимы с ASCII.Вместо этого вы должны убедиться, что у вас всегда есть метка порядка байтов в самом начале файла в кодировке UTF-16. По сути, это декларация в документе.

Кроме того, если ваша страница закодирована как UTF-16, не объявляйте файл как «UTF-16BE» или «UTF-16LE», используйте только «UTF-16». Отметка порядка байтов в начале вашего файла укажет, является ли схема кодирования прямым или обратным порядком байтов. (Это связано с тем, что контент, явно закодированный, например, как UTF-16BE, не должен использовать метку байтового порядка; но HTML5 требует метки байтового порядка для страниц с кодировкой UTF-16.)

Изменение HTML-страницы на Unicode

Изменение HTML-страницы на Unicode

Целевая аудитория: новички в интернационализации, которые хотят изменить кодировку символов своих HTML-страниц.

Как изменить кодировку символов моей HTML-страницы на Unicode / UTF-8?

Итак, вы слышали, что использовать Unicode полезно (UTF-8) для ваших страниц, а не устаревшая кодировка символов, такая как Latin1 (Windows 1252 или ISO 8859-1) или Shift_JIS, и вы слышали, что другие делают это, но не знаете, как это сделать. .Эта страница поможет.

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

Более подробные советы по преобразованию сложных сайтов, программного обеспечения и данных в Unicode см. В статье «Переход на Unicode».

Шаг 1. Сохраните данные как UTF-8

Недостаточно просто изменить объявления внутри ваших страниц, чтобы сказать, что страница закодирована в UTF-8.Вы должны убедиться, что ваши данные действительно закодированы, т.е. сохранено в UTF-8.

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

Обратите внимание, что вам может потребоваться убедиться, что данные не содержат подпись UTF-8, также известна как метка порядка байтов (BOM).

Шаг 2. Объявите кодировку на своей странице

Вы должны изменить объявление кодировки символов в свою страницу (или добавьте ее, если вы ее еще не объявили).

В простейшем виде это выглядит следующим образом и должно стоять в начале элемента head в вашем HTML-коде.

Шаг 3. Убедитесь, что ваш сервер работает правильно

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

Проверьте это, поместив URL-адрес своей страницы в эту форму. Вы попадете в средство проверки интернационализации. Найдите в таблице строку с заголовком HTTP Content-Type в разделе Кодировка символов и убедитесь, что в ней указано UTF-8 или Информация о кодировке не найдена .

Если HTTP Content-Type показывает кодировку, отличную от UTF-8, вам необходимо предпринять шаги для ее исправления, потому что объявление в заголовке HTTP переопределит информацию на странице

Для изменения кодировки, отправляемой в заголовке HTTP, необходимы права администратора сервера

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

Кодировка ввода - Шрифты и языки - Руководство mPDF

Руководство mPDF - Шрифты и языки
  • О mPDF
    • Функции
    • Требования
    • Требования
    • Ограничения
    • Кредиты
    • История изменений
    • Лицензия
  • Установка и настройка
    • Установка v7.х +
    • Использование mPDF без Composer
    • Уменьшение использования памяти
    • Папки для временных файлов
    • Регистрация
    • Установка v6.x
  • Начало работы
    • Создание первого файла
    • HTML или PHP?
  • Шрифты и языки
    • Шрифты в mPDF 7.x
    • Шрифтов в mPDF 6.x
    • шрифтов в mPDF 5.х
    • О файлах PDF
    • Макет OpenType (OTL)
    • Названия шрифтов
    • Доступные шрифты v6 и v7
    • Доступные шрифты v5.x
    • Выбор конфигурации v7.x
    • Выбор конфигурации v6.x
    • Выбор конфигурации v5.x
    • Автоматический выбор шрифта
    • язык 6.x
    • язык v5.х
    • Входная кодировка
    • Двунаправленный текст (RTL) v6.x
    • Арабский (RTL) текст v5.x
    • CJK Языки
    • Шрифт по умолчанию
    • Замена шрифта 7.x
    • Замена шрифта 6.x
    • Замена шрифта 5.x
    • Замена символов
    • Шрифты и языковая обложка v5.x
    • индийские шрифты v5.х
  • Конфигурация
    • Конфигурация v7.x
    • Файлы конфигурации v6.x
    • Методы конфигурации
    • Переменные конфигурации
  • Поддержка HTML
    • HTML-тегов
    • HTML-атрибуты
    • Пользовательские теги HTML
  • Таблицы
    • Таблицы
    • Макет стола
    • Алгоритм автоматической компоновки
    • Обрушение границы
  • Пейджинг
    • Разрывы страниц

Кодирование и декодирование Html

Кодирование HTML

Кодировка

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

Кодировка

HTML гарантирует, что текст правильно отображается в браузере и не интерпретируется браузером как HTML. Например, если текстовая строка содержит знак «меньше» 9 (<) или знак «больше» (>), браузер будет интерпретировать эти символы как открывающую или закрывающую скобку тега HTML. Когда символы закодированы в HTML, они преобразуются в строку <и>, что заставляет браузер правильно отображать знак «меньше» и «больше».С момента рождения компьютеров используются различные кодировки. Даже обычные пользователи, вероятно, сталкивались с различными проблемами кодирования кодовых страниц, из-за которых контент веб-сайта или сообщение электронной почты становилось нечитабельным, особенно если они написаны не на английском языке. Существуют и другие кодировки, позволяющие передавать двоичные данные через текстовые протоколы, использующие только ограниченный набор символов.

HTML Encode преобразует различные символы, которые могут быть ошибочно интерпретированы как форматирование HTML, в их представление сущности HTML.

Online HTML Encode: HTML Encode будет кодировать HTML и является способом скрыть текст HTML от посторонних глаз. Countwordsfree HTML Encoder - это онлайн-инструмент, который преобразует HTML-код в строку JavaScript Unicode, что означает, что текст выглядит зашифрованным при просмотре исходного кода, но при выполнении в виде веб-страницы кажется нормальным.

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

HTML DECODE: HTML Decoding - это противоположность процессу кодирования. в процессе декодирования специально закодированные символы преобразуются обратно в исходную форму. он декодирует строку, содержащую ссылки на числовые символы HTML, и возвращает декодированную строку. HTML Decoders состоит из нескольких инструментов, которые позволяют декодировать данные с помощью различных методов. Реализация Countwordsfree поддерживает как ввод текстовой строки, так и ввод файла.Если данные, которые вы хотите декодировать, представлены в виде короткой строки, рекомендуется использовать файл в качестве ввода. С другой стороны, для больших входных данных мы рекомендуем вам использовать файл в качестве входных данных. На выходе вам предоставляется результат в виде текста или шестнадцатеричного дампа, в зависимости от содержимого вывода, а также в виде файла, который вы можете скачать. В случае большого объема вывода простой текстовый вывод или вывод шестнадцатеричного дампа может быть усечен, вывод файла всегда завершен.

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