%20 · %C3%A9 · encodeURIComponent
Кодирование и декодирование URL
Кодирование URL заменяет небезопасные символы знаком % и двумя шестнадцатеричными цифрами: пробел становится %20, а é — %C3%A9. Выберите кодирование, декодирование или разбор, затем введите или вставьте текст.
- a b&c=d → a%20b%26c%3Dd
- é → %C3%A9
- € → %E2%82%AC
- 😀 → %F0%9F%98%80
Всё выполняется в этой вкладке, ничего не загружается. Текст не из ASCII перед экранированием преобразуется в UTF-8.
Scanned by NortonTM Safe Web
Коротко
- Цена
- Без оплаты
- Аккаунт
- Не нужен
- Стандарты
- RFC 3986 (URI), WHATWG URL Standard
- Режимы
- Кодирование, декодирование и разбор
- Набор символов
- UTF-8
- Загрузка
- Нет — текст остаётся во вкладке вашего браузера
Процентное кодирование распространённых символов
Каждая ячейка получена кодировщиком и декодировщиком на этой странице. Символ ␣ обозначает пробел.
| Символ | encodeURIComponent | encodeURI | Форма (+ вместо пробела) |
|---|---|---|---|
| ␣ | %20 | %20 | + |
| ! | ! | ! | %21 |
| " | %22 | %22 | %22 |
| # | %23 | # | %23 |
| $ | %24 | $ | %24 |
| % | %25 | %25 | %25 |
| & | %26 | & | %26 |
| ' | ' | ' | %27 |
| ( | ( | ( | %28 |
| ) | ) | ) | %29 |
| * | * | * | * |
| + | %2B | + | %2B |
| , | %2C | , | %2C |
| / | %2F | / | %2F |
| : | %3A | : | %3A |
| ; | %3B | ; | %3B |
| = | %3D | = | %3D |
| ? | %3F | ? | %3F |
| @ | %40 | @ | %40 |
| [ | %5B | %5B | %5B |
| ] | %5D | %5D | %5D |
| ~ | ~ | ~ | %7E |
| é | %C3%A9 | %C3%A9 | %C3%A9 |
| € | %E2%82%AC | %E2%82%AC | %E2%82%AC |
| 😀 | %F0%9F%98%80 | %F0%9F%98%80 | %F0%9F%98%80 |
| Последовательность | decodeURIComponent | decodeURI | Форма |
|---|---|---|---|
| %2F | / | %2F | / |
| %3F | ? | %3F | ? |
| %23 | # | %23 | # |
| %20 | ␣ | ␣ | ␣ |
| %2B | + | %2B | + |
| %41 | A | A | A |
Как закодировать или декодировать URL
Выберите режим
Выберите «Кодировать», чтобы экранировать текст, «Декодировать», чтобы прочитать экранированный текст, или «Разобрать», чтобы разделить весь URL на протокол, хост, путь, запрос и фрагмент.
Выберите метод
Для одного значения, например параметра запроса, используйте метод для компонента. Для полного адреса — метод для всего URL. Для данных, отправляемых HTML-формой, — метод для формы.
Вставьте и скопируйте
Введите или вставьте текст. Результат обновляется по мере ввода, рядом есть кнопка «Копировать». О неверной последовательности % сообщается с указанием позиции.
Как работает процентное кодирование
Процентное кодирование (RFC 3986) записывает байт как % и две шестнадцатеричные цифры. Сначала текст преобразуется в UTF-8, поэтому é — это 2 байта (%C3%A9), € — 3 байта (%E2%82%AC), а 😀 — 4 байта (%F0%9F%98%80). Буквы, цифры и - _ . ~ кодировать не нужно никогда. Зарезервированные символы, такие как / ? # & = + и :, выполняют в URL определённую роль, поэтому нужно ли их кодировать, зависит от того, куда попадёт текст.
encodeURIComponent предназначен для одной части URL, например значения запроса: он кодирует / ? # & = + и :. encodeURI предназначен для всего URL: он оставляет эти символы как есть, чтобы адрес сохранил структуру. Кодирование форм (application/x-www-form-urlencoded) записывает пробел как + вместо %20 и дополнительно кодирует ~ и ! ' ( ). При декодировании % без двух шестнадцатеричных цифр после него отклоняется, а его позиция сообщается.
Вопросы о кодировании URL
Чем отличаются encodeURI и encodeURIComponent?
encodeURIComponent кодирует всё, кроме букв, цифр и - _ . ! ~ * ' ( ), поэтому кодирует и / ? # & = + и :. encodeURI оставляет эти символы, чтобы целый URL продолжал работать. Метод для компонента используйте для значения, например a/b превращается в a%2Fb, а encodeURI — для полного адреса.
Почему пробел в одном месте %20, а в другом +?
%20 — это процентное кодирование пробела, оно допустимо в любом месте URL. + вместо пробела относится только к кодированию форм (application/x-www-form-urlencoded) — формату строки запроса, которую отправляет HTML-форма. Настоящий знак плюс в обоих случаях — %2B.
Как закодировать символы Юникода в URL?
Преобразуйте текст в UTF-8, затем запишите каждый байт как %XX. é даёт %C3%A9, € даёт %E2%82%AC, а 😀 даёт %F0%9F%98%80. Эта страница делает это в каждом методе кодирования.
Какие символы в URL нужно кодировать?
Пробелы, двойные кавычки, < и > и все символы не из ASCII кодируются всегда. Буквы, цифры и - _ . ~ — никогда. Зарезервированные символы, такие как ? и &, кодируются только тогда, когда они являются данными, а не частью структуры URL.
Почему при декодировании сообщается о недопустимой последовательности %?
После % должны идти две шестнадцатеричные цифры. 100% не проходит, потому что после % ничего нет, так же как и ab%zz. Страница сообщает позицию неверного %. Экранированные байты, которые не образуют допустимый UTF-8, например %FF, тоже отмечаются.
Может ли эта страница разделить URL на части?
Да. Режим разбора использует парсер URL браузера, чтобы вывести протокол, имя пользователя, хост, порт, путь, запрос и фрагмент, и показывает каждый параметр запроса с его декодированным значением. Пароль в URL отмечается как присутствующий и никогда не выводится.