Таблица кодирования символов в URL

15.10.2019

51778

В закладки

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

Так же есть функция rawurlencode(), которая выполняет туже роль, но с минимальным различием – символ ~ остается без изменяя.

Таблица URL-кодирования:
Символ UTF-8 ANSI
~ %7E %7E
` 60% 60%
27% 27%
« 22%
22%
@ 40% 40%
? %3F %3F
! 21% 21%
# 23% 23%
%E2%84%96 %B9
$ 24% 24%
% 25% 25%
^ %5E %5E
& 26% 26%
+ %2B %2B
* %2A %2A
: %3A %3A
, %2C %2C
( 28% 28%
) 29% 29%
{ %7B %7B
} %7D %7D
[ %5B %5B
] %5D %5D
< %3C %3C
> %3E %3E
/ %2F %2F
%5C %5C
А %D0%90 %C0
а %D0%B0 %E0
Б %D0%91 %C1
б %D0%B1 %E1
В %D0%92 %C2
в %D0%B2 %E2
Г %D0%93 %C3
г %D0%B3 %E3
Д %D0%94 %C4
д %D0%B4 %E4
Е %D0%95 %C5
е %D0%B5 %E5
Ё %D0%81 %A8
ё %D1%91 %B8
Ж %D0%96 %C6
ж %D0%B6 %E6
З %D0%97 %C7
з %D0%B7 %E7
И %D0%98 %C8
и %D0%B8 %E8
Й %D0%99 %C9
й %D0%B9 %E9
К %D0%9A %CA
к %D0%BA %EA
Л %D0%9B %CB
л %D0%BB %EB
М %D0%9C %CC
м %D0%BC %EC
Н %D0%9D %CD
н %D0%BD %ED
О %D0%9E %CE
о %D0%BE %EE
П
%D0%9F %CF
п %D0%BF %EF
Р %D0%A0 %D0
р %D1%80 %F0
С %D0%A1 %D1
с %D1%81 %F1
Т %D0%A2 %D2
т %D1%82 %F2
У %D0%A3 %D3
у %D1%83 %F3
Ф %D0%A4 %D4
ф %D1%84 %F4
Х %D0%A5 %D5
х %D1%85 %F5
Ц %D0%A6 %D6
ц %D1%86 %F6
Ч %D0%A7 %D7
ч %D1%87 %F7
Ш %D0%A8 %D8
ш %D1%88 %F8
Щ %D0%A9 %D9
щ %D1%89 %F9
Ъ %D0%AA %DA
ъ %D1%8A %FA
Ы %D0%AB %DB
ы %D1%8B %FB
Ь %D0%AC %DC
ь %D1%8C %FC
Э %D0%AD %DD
э %D1%8D %FD
Ю %D0%AE %DE
ю %D1%8E %FE
Я %D0%AF %DF
я %D1%8F %FF

15. 10.2019, обновлено 18.10.2019

51778

#HTTP #PHP #URL #Домены

В закладки

Другие публикации

Таблица символов KOI8-R

KOI8-R (КОИ8-R) представляет собой восьмибитовую кодовую страницу для кодирования букв кириллических алфавитов, совместима с кодировкой ASCII.

HTML — кодировка URL — CoderLessons.com

Кодирование URL – это практика перевода непечатаемых символов или символов со специальным значением в URL-адреса в представление, которое является однозначным и общепринятым для веб-браузеров и серверов. Эти символы включают в себя –

  • Управляющие символы ASCII – непечатаемые символы, обычно используемые для управления выводом. Диапазон символов 00-1F шестнадцатеричный (0-31 десятичный) и 7F (127 десятичный). Полная таблица кодирования приведена ниже.

  • Не-ASCII управляющие символы – это символы за пределами набора символов ASCII из 128 символов.

    Этот диапазон является частью набора символов ISO-Latin и включает всю “верхнюю половину” набора ISO-Latin 80-FF hex (128-255 десятичных). Полная таблица кодирования приведена ниже.

  • Зарезервированные символы – это специальные символы, такие как знак доллара, амперсанд, плюс, общий, косая черта, двоеточие, точка с запятой, знак равенства, знак вопроса и символ «at». Все они могут иметь разные значения внутри URL, поэтому их необходимо кодировать. Полная таблица кодирования приведена ниже.

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

Управляющие символы ASCII – непечатаемые символы, обычно используемые для управления выводом. Диапазон символов 00-1F шестнадцатеричный (0-31 десятичный) и 7F (127 десятичный). Полная таблица кодирования приведена ниже.

Не-ASCII управляющие символы

– это символы за пределами набора символов ASCII из 128 символов. Этот диапазон является частью набора символов ISO-Latin и включает всю “верхнюю половину” набора ISO-Latin 80-FF hex (128-255 десятичных). Полная таблица кодирования приведена ниже.

Зарезервированные символы – это специальные символы, такие как знак доллара, амперсанд, плюс, общий, косая черта, двоеточие, точка с запятой, знак равенства, знак вопроса и символ «at». Все они могут иметь разные значения внутри URL, поэтому их необходимо кодировать. Полная таблица кодирования приведена ниже.

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

Эти символы также всегда должны быть закодированы. Полная таблица кодирования приведена ниже.

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

пример

Одним из наиболее распространенных специальных символов является пробел. Вы не можете ввести пробел в URL напрямую. Позиция пробела в наборе символов составляет 20 шестнадцатеричных. Таким образом, вы можете использовать% 20 ​​вместо пробела при передаче вашего запроса на сервер.

http://www.example.com/new%20pricing.htm

Этот URL-адрес фактически извлекает документ с именем «new pricing.htm» с сайта www.example.com.

Кодировка управляющих символов ASCII

Это включает в себя кодирование для диапазонов символов 00-1F шестнадцатеричное (0-31 десятичное) и 7F (127 десятичное)

Десятичный Шестнадцатеричное значение символ Кодирование URL
0 00 % 00
1 01 % 01
2 02 % 02
3 03 % 03
4 04 % 04
5 05 % 05
6 06 % 06
7 07 % 07
8 08 возврат на одну позицию % 08
9 09 табуляция % 09
10 0a перевод строки % 0a
11 0b % 0b
12 % 0с
13 0d возврат каретки % 0D
14 0e % 0e
15 0f % 0f
16 10 % 10
17 11 % 11
18 12 % 12
19 13 % 13
20 14 % 14
21 15 % 15
22 16 % 16
23 17 % 17
24 18 % 18
25 19 % 19
26 1a % 1а
27 % 1b
28 1c % 1c
29 1d % 1d
30 1e % 1е
31 1f % 1f
127 % 7е

Кодировка управляющих символов не ASCII

Это включает в себя кодирование для всей “верхней половины” ISO-Latin набора 80-FF hex (128255 десятичное. )

Десятичный Шестнадцатеричное значение символ Кодирование URL
128 80 % 80
129 81 % 81
130 82 , % 82
131 83 ƒ % 83
132 84 « % 84
133 85 % 85
134 86 % 86
135 87 % 87
136 88 % 88
137 89 % 89
138 Š % 8а
139 < % 8b
140 О. Н % 8c
141 8d % 8d
142 Ž % 8e
143 % 8е
144 90 % 90
145 91 % 91
146 92 % 92
147 93 « % 93
148 94 » % 94
149 95 % 95
150 96 % 96
151 97 % 97
152 98 ~ % 98
153 99 % 99
154 š % 9a
155 9b > % 9b
156 9c œ % 9c
157 9d % 9d
158 9e ž % 9e
159 Ÿ % 9F
160 a0 % a0
161 a1 ¡ % a1
162 a2 ¢ % a2
163 a3 £ % a3
164 a4 ¤ % a4
165 a5 ¥ % a5
166 a6 | % a6
167 a7 § % a7
168 a8 ¨ % a8
169 a9 © % a9
170 аа ª % аа
171 аб « % аб
172 переменный ток ¬ % переменный ток
173 объявление %объявление
174 ае ® % ае
175 аф ¯ % аф
176 b0 ° % b0
177 b1 ± % b1
178 Би 2 ² %Би 2
179 b3 ³ % b3
180 b4 % b4
181 b5 μ % b5
182 b6 % b6
183 b7 · % b7
184 b8 ¸ % b8
185 b9 ¹ % b9
186 ба º % ба
187 бб » % бб
188 До нашей эры ¼ %До нашей эры
189 бод ½ % шд
190 быть ¾ %быть
191 Б. Ф. ¿ % Б.Ф.
192 c0 À % c0
193 c1 Á % c1
194 c2 Â % c2
195 c3 Ã % c3
196 c4 Ä % c4
197 c5 Å % c5
198 c6 Æ % v6
199 c7 БЗ % c7
200 с8 Э. % c8
201 с9 É % с9
202 Калифорния Ê % ча
203 центибар Ë % центибар
204 куб.см Я % куб.см
205 CD Я %CD
206 в. п. Я % в.п.
207 сравни Я % ср
208 d0 Ð % d0
209 d1 ЦТС % d1
210 d2 Ò % d2
211 d3 Ó % d3
212 d4 Ф % d4
213 d5 Õ % d5
214 d6 Ö % d 6
215 d7 × % d7
216 d8 Ø % d8
217 d9 Ù % d9
218 да Ú % да
219 децибел Û % дб
220 Округ Колумбия Ü %Округ Колумбия
221 дд Ý % дд
222 де Þ % от
223 Д. Ф. ß % Д.Ф.
224 e0 à % e0
225 e1 á % e1
226 e2 â % e2
227 e3 ã % e3
228 e4 ä % e4
229 e5 å % e5
230 e6 æ % e6
231 e7 ç % e7
232 e8 è % e8
233 e9 é % e9
234 еа ê % еа
235 Е.Б. ë % Е.Б.
236 ЕС я % ес
237 издание я % ред
238 й я % й
239 эф я % эф
240 f0 ð % f0
241 f1 ñ % f1
242 f2 ò % f2
243 f3 ó % f3
244 f4 ô % f4
245 f5 õ % f5
246 f6 ö % f6
247 f7 ÷ % f7
248 f8 ø % f8
249 f9 ù % f9
250 фа ú % метрономы
251 фб û % фб
252 Ь ü % Ь
253 FD ý % FD
254 Fe þ % Fe
255 Ф. Ф. ÿ % Ф.Ф.

Кодировка зарезервированных символов

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

Десятичный Шестнадцатеричное значение голец Кодирование URL
36 24 $ % 24
38 26 & % 26
43 2b + % 2b
44 , % 2c
47 2f / % 2f
58 3a : % 3a
59 3b ; % 3b
61 3d знак равно % 3d
63 3f ? % 3f
64 40 @ % 40

Кодировка небезопасных символов

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

Что такое кодирование URL и как оно работает?

Раджив Сингх4 минуты

Введение

URL-адрес (унифицированный указатель ресурсов) — это адрес ресурса во всемирной паутине. URL-адреса имеют четко определенную структуру, которая была сформулирована в RFC 1738 Тимом Бернерсом-Ли, изобретателем всемирной паутины.

Каждый URL-адрес подтверждает общий синтаксис , который выглядит следующим образом:

 схема:[//[пользователь:пароль@]хост[:порт]]путь[?запрос][#фрагмент] 

Некоторые части синтаксиса URL, например [пользователь:пароль@] , устарели и редко используются из соображений безопасности. Ниже приведен пример URL-адреса, который вы чаще всего видите в Интернете:

 https://www.google.com/search?q=hello+world#brs 

. Было внесено много улучшений в исходный RFC, определяющий синтаксис унифицированных указателей ресурсов (URL). Текущий документ RFC, определяющий синтаксис универсального URI, — RFC 3986. Этот пост содержит информацию из последнего документа RFC.

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

URL-адрес состоит из ограниченного набора символов, принадлежащих к набору символов US-ASCII. Эти символы включают цифры (0-9), буквы (A-Z, a-z) и несколько специальных символов ( "-" , "." , "_" , "~" ).

Управляющие символы ASCII (например, backspace, вертикальная табуляция, горизонтальная табуляция, перевод строки и т. д.), небезопасные символы, такие как пробел , \ , < , > , { , } и т. д., а любые символы, не входящие в кодировку ASCII, нельзя размещать непосредственно в URL-адресах.

Кроме того, некоторые символы имеют особое значение в URL-адресах. Эти символы называются зарезервированными символами. Некоторые примеры зарезервированных символов: ? , / , # , : и т. д. Любые данные, передаваемые как часть URL, будь то строка запроса или сегмент пути, не должны содержать эти символы.

Итак, что мы делаем, когда нам нужно передать какие-либо данные в URL-адресе, который содержит эти запрещенные символы? Ну мы их кодируем!

Кодирование URL-адресов

преобразует зарезервированные, небезопасные и не-ASCII-символы в URL-адресах в формат, который повсеместно принимается и понимается всеми веб-браузерами и серверами. Сначала он преобразует символ в один или несколько байтов. Затем каждый байт представляется двумя шестнадцатеричными цифрами, которым предшествует знак процента ( % ) - (например, %xy ). Знак процента используется как escape-символ.

URL-кодирование также называется процентным кодированием, поскольку оно использует знак процента ( % ) в качестве escape-символа.

Пример кодировки URL

Пробел: Один из наиболее частых символов URL-кодировки, с которым вы, вероятно, столкнетесь, — это пробел . Значение ASCII символа пробел в десятичном виде равно 32 , что при преобразовании в шестнадцатеричный вид получается 20 . Теперь мы просто предваряем шестнадцатеричное представление знаком процента ( % ), что дает нам закодированное значение URL — %20 .

Справочник по кодировке символов ASCII

В следующей таблице приведены ссылки на символы ASCII в их соответствующей URL-кодированной форме.

Обратите внимание, что кодирование буквенно-цифровых символов ASCII не требуется. Например, вам не нужно кодировать символ от '0' до %30 , как показано в следующей таблице. Его можно передать как есть. Но кодировка по-прежнему действительна в соответствии с RFC. Все символы, которые безопасно передавать внутри URL-адресов, выделены в таблице зеленым цветом.

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

901 26 SI(вход) 9012 6 %12 9 0126 %15 9011 5 901 26 %23 901 26 39 90 126 %30 90 126 7 901 26 %41 9012 6 %47 9012 2 901 26 92 9 9 0126 %60 90 126 %68 9 0126 %70 90 126 %78
Десятичный Символьный Кодировка URL (UTF-8)
0 9012 7 NUL(нулевой символ) %00
1 SOH(начало заголовка ) %01
2 STX(начало текста) %02
3 ETX(конец текст) %03
4 EOT(конец передачи) %04
5 ENQ(запрос) %05
6 ACK (подтверждение) % 06
7 BEL(звонок) %07
8 BS(backspace) % 08
9 HT (горизонтальная вкладка) %09
10 LF (перевод строки) %0A
11 VT (вертикальная вкладка) %0B
12 FF (подача формы) %0C
13 CR(возврат каретки) %0D
14 SO(переключение) %0E
15 %0F
16 DLE( выход канала передачи данных) %10
17 DC1 (управление устройством 1) %11
18 DC2 (управление устройством 2)
19 DC3 (управление устройством 3) % 13
20 DC4 (управление устройством 4) %14
21 NAK (отрицательное подтверждение)
22 SYN (синхронизация) %16
23 ETB(конец блокировки передачи) %17
24 CAN(отмена) %18
25 EM(конец среды) %19
26 SUB (заменитель) %1A
27 ESC (выход) %1B
28 FS (разделитель файлов) %1C
29 GS(разделитель групп) %1D
30 RS(разделитель записей) %1E
31 US(единица измерения) паратор) %1F
32 пробел %20
33 ! %21
34 " %22
35 #
36 $ %24
37 % %25
38 и %26
' %27
40 ( %28
41 ) %29
42 * %2A
43 + %2B
44 , %2C
45 - %2D
46 . %2E
47 / %2F
48 0
49 1 %31
50 2 %32
51 3 %33
52 4 %34 901 27
53 5 %35
54 6 %36
55 %37
56 8 %38
57 9 %39
58 : %3A
59 ; %3B
60 < %3C
61 = %3D
62 > %3E
63 ? %3F
64 @ %40
65 A
66 В %42
67 С %43
68 D %44
69 E %45
70 F %46
71 G
72 H %48
73 I %49
74 J %4A
75 K %4B
76 L %4C
77 M %4D
78 N %4E
79 O %4F
80 P %50
81 Q % 51
82 R %52
83 S %53
84 T %54
85 U %55
86 В %56
87 Ш %57
88 X %58
89 Y %59
90 Z %5A
91 [ %5B
\ %5C
93 ] %5D %5E
95 _ %5F
96 `
97 а %61
98 б %62
99 в %63
100 г %64 901 27
101 e %65
102 f %66
103 г %67
104 ч
105 i %69
106 j %6A
107 k %6B
108 л %6C 901 27
109 м %6D
110 n %6E
111 или %6F
112 p
113 q %71
114 r %72
115 s %73
116 t %74 9 0127
117 u %75
118 v %76
119 w %77
120 x
121 y %79
122 z %7A
123 { %7B
124 | %7C
125 } %7D
126 ~ %7E
127 DEL(удалить (удалить)) %7F

Сноски

  • URL-адрес (унифицированный указатель ресурсов)
  • Что должен знать каждый разработчик о кодировании URL
  • Почему существует кодировка URL для набора символов ASCII
  • RFC 3986 — Унифицированный идентификатор ресурса (URI): общий синтаксис.

http — Могу ли я использовать символ at (@) внутри URL-адресов?

спросил

Изменено 10 месяцев назад

Просмотрено 92к раз

Безопасно ли использовать символ @ как часть пользователя? Например, возможный URL-адрес будет http://example.com/@dave .

Идея в том, что в настоящее время пользователей обычно называют "@user", так почему бы не сделать страницу пользователя "@username"?

  • http
  • URL-адрес
  • символ
4

Percent-encoded …

Вы можете использовать символ @ в путях HTTP URI, если вы закодируете его в процентах как %40 .

Многие браузеры будут отображать его как @ , но, например. когда вы копируете и вставляете URI в текстовый документ, это будет %40 .

… но и напрямую

Вместо процентного кодирования можно использовать @ непосредственно в пути HTTP URI.

См. синтаксис пути URI. Помимо различных несвязанных предложений, путь может состоять из символов набора segment , segment-nz или segment-nz-nc . Сегмент и сегмент -nz состоят из символов из набора pchar , который определяется как:

 pchar = незарезервировано / pct-encoded / sub-delims / ":" / "@"
 

Как видите, @ указан явно.

В наборе segment-nz-nc также явно указан символ @ :

 segment-nz-nc = 1*(незарезервировано / pct-encoded / sub-delims / "@" )
 

Таким образом, URL-адрес HTTP, подобный этому, полностью действителен:

 http://example.com/@dave
 

Пример

Вот пример страницы Википедии:

  • ссылка
  • копирование и вставка: http://en. wikipedia.org/wiki/%22@%22_%28album%29

Как видите, символы " , ( и ) кодируются в процентах, но @ и _ используются напрямую.

9

Можно ли использовать символ @ в URL-адресе? - Да, можно!

Обратите внимание, что этот @-символ, шестнадцатеричное значение 40, десятичное значение 64, является зарезервированными символами для URI. Он используется для таких вещей, как адреса электронной почты в mailto: URI, например mailto:[email protected] и для передачи информации об имени пользователя и пароле в URI (это плохая идея, но возможна): http://username:[email protected]

Если вам нужен URL-адрес с символом @ в пути, вам необходимо закодировать его с помощью так называемого «URL-кодирования». Например, так: http://somewhere.foo/profile/username%40somewhere.foo

Все современные браузеры отобразят это как http://somewhere. foo/profile/[email protected] и преобразуют любой набранный @-знак до %40 , поэтому его легко использовать.

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

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

3

В RFC следующие символы:

* ' ( ) ; : @ & = + $ , / ? % # [ ]

зарезервированы и:

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

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

1

Я обнаружил этот вопрос, когда пытался выполнить поиск site:typescriptlang. org @ts-ignore в Chrome, а затем получил результат Эта страница не работает, ts-ignore в настоящее время не может обработать этот запрос , и я увидел, что URL-адрес стал «http://site:typescriptlang.org%20@ts-ignore/». Я чувствовал себя настолько отвергнутым, затем искал функцию символа @ по URL-адресу , а затем нашел свой ответ в Википедии.

Полный формат URL-адреса: схема://userInfo@host:port/path?query#fragment . поэтому, когда мы ищем site:typescriptlang.org @ts-ignore , браузер подумает, что вы хотите посетить "http://site:typescriptlang.org%20@ts-ignore/". В этом URL http — это схема, site:typescriptlang.org%20 — это userInfo («%20» экранируется пробелом), «ts-ignore/» — хост. Конечно, мы не можем зайти на хост с именем «ts-ignore» без домена.

Итак, символ @ может быть разделителем между userInfo и host .

В основном нет.