Тулси
Назад в блог

Технологии

URL encode: почему кириллица и пробелы ломают ссылку

9 мин чтения

Пробел и кириллица в адресе часто превращают рабочую ссылку в обрыв: мессенджер режет строку, форма теряет параметр, браузер показывает «кашу» с процентами. URL encode переводит такие символы в безопасный вид вроде %20 для пробела. Decode делает обратный ход: из %D0%9F... снова читаемый текст. Откройте кодирование для ссылок на Тулси, выберите «Для ссылки» или «Обратно в текст», вставьте фрагмент и скопируйте результат. Счёт идёт в браузере на вашем устройстве. Это другой формат, чем Base64: другой алфавит и другая задача. Ниже: почему ссылка ломается, что проверить до вставки, путь в инструменте, типичные ошибки вроде двойного кодирования и соседние утилиты. Частые вопросы в конце.

Почему пробел и кириллица ломают ссылку

Адрес страницы живёт по жёстким правилам. Пробел в URL разделяет токены для многих систем: почта, чат, лог, скрипт. Строка https://site.ru/каталог товары без кодирования режется на два куска. Получатель кликает только до первого пробела и попадает не туда.

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

Типичные места поломки: query-строка после ?, значение после =, фрагмент в WhatsApp или Telegram, поле «ссылка» в CMS, редирект в конфиге. Одного незакодированного пробела или русской буквы хватает, чтобы цепочка оборвалась.

Что видно глазами в адресной строке

В браузере вы можете видеть и русские буквы, и набор %XX. Оба варианта относятся к одному адресу. Копия из панели адреса иногда даёт уже закодированную строку. Копия из редактора текста, где вы набрали URL вручную, часто отдаёт «сырой» вид с пробелами.

Перед отправкой коллеге откройте ссылку в новой вкладке. Если страница открылась, строка в адресной строке пригодна. Если сайт отвечает 404 или параметр пустой, вернитесь к исходнику и закодируйте подозрительный кусок.

Где чаще всего ломают руками

Вставляют фразу с пробелами прямо в ?q=... без encode. Копируют только половину %D0%9F... и обрывают последовательность. Склеивают уже закодированный параметр с обычным текстом и получают двойное кодирование: %2520 вместо %20.

Ещё одна ловушка: знак & внутри значения. Без кодирования он выглядит как разделитель следующего параметра. Форма «съедает» хвост. В безопасном виде амперсанд становится %26.

Что сделать самому до инструмента

Сначала решите, какой кусок кодировать. Обычно кодируют значение параметра или фрагмент пути, а не весь адрес целиком вместе с https://. Если прогнать через encode всю ссылку, слэши и двоеточие тоже превратятся в проценты, и браузер перестанет узнавать схему.

Выделите только опасную часть: текст поиска, имя файла с пробелами, кириллическое название раздела. Остальное оставьте как есть. После кодирования вставьте результат обратно в шаблон ссылки.

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

Пробел и %20

Пробел в URL encode становится %20. В старых формах в query иногда ставили +: это другой исторический слой. Инструмент на Тулси опирается на encodeURIComponent, поэтому пробел уходит в %20, а не в плюс.

Если в логе вы видите + между словами в параметре, при decode через обычный percent-decode плюс может остаться плюсом. Тогда замените + на пробел или на %20 до расшифровки, если ждёте обычный текст.

Кириллица в процентах

Русская буква кодируется несколькими байтами UTF-8, каждый байт даёт свою пару %XX. Одна буква «П» уже превращается в %D0%9F. Длинная фраза раздувает адрес. Это норма. Ограничение длины URL у серверов и прокси остаётся: очень длинный поиск лучше уводить в тело запроса, а не в query.

Не правьте отдельные %XX вручную «на глаз». Сбейте одну пару, и decode вернёт мусор или ошибку. Копируйте блок целиком.

URL encode и decode рядом с Base64

Люди путают encode URL с Base64, потому что оба слова содержат «encode». Задачи разные. Base64 упаковывает любые байты в алфавит из букв, цифр, +, / и иногда =. URL encode готовит текст к жизни внутри адреса: проценты и двухсимвольные коды.

Если вставить Base64-строку в параметр URL без дополнительного кодирования, символы + и / снова могут сломать разбор. Если прогнать обычный текст через Base64 и вставить в ссылку, адрес станет длинным и всё равно потребует percent-encoding для части символов. Для кириллицы в query нужен URL encode, не Base64.

Разбор encode и decode Base64: статья про Base64. Там же есть отсылка к кодированию для ссылок. Держите вкладки рядом, если в тикете смешаны оба формата.

Когда нужен encode для ссылки

Нужно передать в ?name= фразу с пробелом или русским названием. Нужно собрать ссылку на файл, в имени которого есть пробелы и скобки. Нужно положить текст в редирект или UTM-метку без сюрпризов в аналитике.

В режиме «Для ссылки» на Тулси вы вставляете исходный текст и получаете строку с %. Её вставляют в параметр или в путь.

Когда нужен decode

В логе или в письме уже лежит %D0%9F%D1%80%D0%B8%D0%B2%D0%B5%D1%82. Вам нужен читаемый вид. Режим «Обратно в текст» снимает процентную оболочку. Если строка обрезана посередине последовательности %, инструмент покажет ошибку разбора.

Decode не чинит битую бизнес-логику на сервере. Он только возвращает символы. Если после расшифровки видите JSON одной строкой, разверните его в JSON formatter.

Как пройти путь в кодировании для ссылок на Тулси

Откройте кодирование для ссылок. Сверху два режима: «Для ссылки» и «Обратно в текст». Вставьте фрагмент в верхнее поле. Результат появится ниже; рядом кнопка копирования.

Обработка локальная: браузер считает encode или decode на устройстве. Регистрация не нужна. Подходит для разовых параметров из тикета, учебных примеров и проверки «почему ссылка в чате кликается криво».

Если поле результата подсветило ошибку, правьте исходник сверху. Пустой ввод даёт пустой результат без ошибки.

Режим «Для ссылки»

Вставьте текст параметра или кусок пути. Скопируйте результат кнопкой, чтобы не срезать хвост % вручную. Соберите полный URL в блокноте: схема и хост без изменений, закодированный фрагмент на своём месте.

Проверка: переключите режим на «Обратно в текст», вставьте полученный код. Должна вернуться исходная фраза. Если вернулось другое, вы закодировали лишнее (кавычки, подпись «пример:») или обрезали строку при копировании.

Режим «Обратно в текст»

Вставьте кусок из адресной строки или из лога. Уберите кавычки вокруг, если копировали из JSON. Не вставляйте HTML-обёртку ссылки (<a href=...>): нужен только закодированный фрагмент или целиком percent-encoded path/query.

Сообщение «Не получилось разобрать. Проверьте ссылку или текст» значит, что последовательность % битая: одинокий %, неполная пара или недопустимые символы после процента. Допишите недостающие символы из исходного лога или перекодируйте заново из чистого текста.

Как проверить результат и что делать при ошибке

Успех encode: справа строка с % и латиницей/цифрами в парах, ошибка пустая. Успех decode: читаемый текст, без сообщения об ошибке. Вставьте результат в реальный URL и откройте вкладку.

Неудача encode почти не бывает на обычном тексте: любой Unicode уходит в проценты. Неудача decode: битый percent-код. Вернитесь к полному фрагменту из лога. Сверьте, что не срезали конец при пересылке в мессенджере.

Двойное кодирование: вы видите %2520. Это % от уже закодированного %20. Декодируйте один раз: получите %20. Декодируйте второй раз: получите пробел. Если система на другом конце ждёт однократный encode, не кодируйте дважды.

Если после decode получили структуру JSON, откройте JSON formatter. Практика поиска скобок и запятых: статья про JSON formatter.

Смежные задачи: Base64, JSON, метки времени

Рядом по стеку разработчика: Base64 для текстового слоя данных, JSON formatter для структуры после расшифровки, конвертер timestamp если в том же логе рядом лежит Unix-время.

URL encode не заменяет короткий идентификатор и не генерирует UUID. Для уникального кода в том же блоке утилит есть генератор UUID. Для длины строки после кодирования удобен счётчик символов: длинный query иногда режут прокси.

Держите правило простым: адрес и параметры → URL encode; произвольные байты в тексте → Base64; проверка скобок → JSON formatter.

Частые вопросы

Что такое URL encode простыми словами?

URL encode переводит пробелы, кириллицу и спецсимволы в вид, который безопасно живёт в адресе страницы. Вместо пробела вы видите %20, вместо русской буквы набор %D0%.... Обратный ход возвращает обычный текст. На Тулси оба направления собраны на странице кодирования для ссылок.

Зачем кодировать кириллицу в ссылке?

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

Что значит %20 в адресе?

%20 это пробел в percent-encoding. Встретили подряд %20%20 значит два пробела подряд. Не путайте с плюсом + из старых form: в режиме Тулси пробел уходит именно в %20. Если нужно увидеть исходную фразу, вставьте кусок адреса в режим «Обратно в текст».

Как сделать URL encode онлайн в браузере?

Откройте кодирование для ссылок, выберите «Для ссылки», вставьте текст, скопируйте результат. Регистрация не нужна, счёт идёт на устройстве. Для проверки сразу переключите режим и декодируйте полученную строку обратно.

Как сделать URL encode decode строки из адреса?

Выберите «Обратно в текст», вставьте фрагмент с %, дождитесь читаемого результата. Если видите ошибку, допишите обрезанный хвост или уберите лишние кавычки. Запрос вроде «url encode decode» закрывается одной вкладкой с двумя режимами, без установки программы.

Чем URL encoding отличается от Base64?

URL encoding готовит текст для адреса и использует проценты. Base64 использует другой алфавит и нужен для переноса данных через текстовые каналы, не как замена percent-encoding. Путать их нельзя: «base64 url encode» в поиске часто смешивает два интента. Для ссылок откройте URL encode, для Base64 читайте как кодировать и расшифровать Base64.

Почему ссылка из мессенджера открывается не туда?

Чаты любят отрезать строку на пробеле или на символе &. Закодируйте пробелы и спецсимволы до отправки. Ещё вариант: обернуть URL в короткий редирект на своём домене, если лимит длины жёсткий. После кодирования вставьте ссылку себе в черновик и нажмите сами, прежде чем слать клиенту.

Можно ли кодировать весь URL целиком?

Технически да, на выходе получите одну percent-строку. Для обычной гиперссылки так делать не нужно: закодируйте только значения параметров и «опасные» куски пути. Иначе https:// тоже превратится в проценты, и вставка в href перестанет быть обычным адресом. Кодируйте узкий фрагмент, собирайте URL руками.

Данные из URL encode уходят на сервер Тулси?

В этом инструменте нет: encode и decode считает браузер у вас на устройстве. Удобно для черновиков параметров и учебных примеров. Всё равно не вставляйте боевые токены в чужие вкладки по привычке. Привычка важнее конкретного сайта.

Нужно ли скачивать программу для URL encode?

Для разовых строк скачивать ничего не нужно: хватает страницы кодирования для ссылок. Редактор кода и скрипты имеют смысл, если вы гоняете тысячи URL в пайплайне. Поисковый запрос «encode url online» для человека с одной фразой закрывается вкладкой в браузере без установщика.

Если нужно уложить параметр в адрес, расшифровать Base64 или поправить JSON из того же лога, откройте URL encode, Base64 или JSON formatter. Соседняя практика по Base64: статья про encode и decode.

Закодируйте текст для ссылки

Вставьте фразу или кусок адреса. Режим «Для ссылки» или «Обратно в текст». Обработка идёт на устройстве.

Открыть URL encode
Поделиться статьей

Читайте также

URL encode: почему кириллица и пробелы ломают ссылку — Тулси