URL енкодер

Кодирайте всеки низ в URL формат с нашия инструмент за URL кодиране за безопасни и сигурни уеб адреси.

5 от 2 оценки
URL енкодер

URL енкодерът е безплатен инструмент, който преобразува низ във формата, използван за параметри в URL заявки и други текстови данни в уеб.

Какво представлява URL енкодирането и за какво се използва?

URL енкодирането заменя знаците със специално значение в URL адресите със знак за процент, последван от шестнадесетични цифри. Така текстът може да преминава през системи, които приемат само ограничен набор от знаци.

Например амперсандът разделя параметрите на заявката. Ако е част от стойността, той трябва да бъде енкодиран като %26. Интервалите също се обработват по специален начин. Инструментът използва функцията urlencode на PHP, която преобразува интервала в знак плюс.

Преди: tea and cake

След: tea+and+cake

Може да срещнеш URL енкодиран текст в:

  • низове на заявки, изпратени чрез уеб формуляри;
  • URI адреси за данни, съдържащи текст, който не може да бъде включен директно;
  • връзки в имейл съобщения;
  • URL стойности, съхранявани в JSON данни;
  • параметри за пренасочване и обратно извикване, използвани от уеб приложения;
  • URL адреси, свързани с интернационализирани домейни, въпреки че самото име на домейна може да изисква Punycode вместо процентно енкодиране.

URL енкодирането не е криптиране и не осигурява поверителност. Всеки, който вижда процентно енкодирана стойност в URL адрес, може да я декодира.

Схема: текстът минава през инструмента URL енкодер в двете посоки

Как се използва URL енкодерът?

Въведи низа, който искаш да енкодираш, стартирай инструмента и виж преобразуваната стойност в полето за резултат Енкодиран URL адрес. Енкодирай само самата стойност, без кавичките около нея или придружаващите обяснения.

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

За да обърнеш операцията, използвай Декодера на URL адреси. При правилно декодиране резултатът трябва да съвпада с първоначалния текст, стига и в двете посоки да са използвани еднакво кодиране на знаците и едни и същи правила за енкодиране на формуляри.

Инструментът URL енкодер в digily.link с формата за въвеждане

Да енкодирам ли целия URL адрес, или само стойността на параметъра?

Обикновено трябва да енкодираш всяка стойност на параметър поотделно, а не целия URL адрес. Ако енкодираш целия адрес, ще бъдат заменени и структурни знаци като двоеточието, наклонените черти, въпросителният знак и знакът за равенство.

Да приемем, че стойността за търсене е green tea & coffee. Енкодираният ѝ вид е green+tea+%26+coffee и може да бъде поставен след името на параметъра. Ако енкодираш целия адрес, ще скриеш разделителите, по които браузърът разпознава схемата, хоста, пътя и низа на заявката.

Използваната от този инструмент функция urlencode е подходяща за параметри на заявки във формата на HTML формуляри. Някои API и сегменти от пътища обаче следват правилата на RFC 3986, при които интервалът се записва като %20, а не като +. Провери дали приемащата система очаква енкодиране на формуляр с +, или формат по RFC 3986 с %20.

Примерен резултат, създаден от инструмента URL енкодер

Примери за URL енкодиране

ASCII буквите и цифрите остават четими. Интервалите се превръщат в знаци плюс, а запазените препинателни знаци и текстът извън ASCII се представят чрез енкодирани байтове.

  • hello world се преобразува в hello+world.
  • tea & cake се преобразува в tea+%26+cake.
  • email=test@example.com се преобразува в email%3Dtest%40example.com.
  • 100% ready се преобразува в 100%25+ready.
  • café се преобразува в caf%C3%A9, когато изходният текст използва UTF-8.

Буквите с диакритични знаци и знаците от нелатински писмености първо се представят като байтове чрез кодиране на знаци, обикновено UTF-8 в уеб. След това всеки байт извън разрешения набор получава собствена процентна escape последователност. Затова един видим знак може да създаде няколко групи, започващи с %.

Цифрите не изискват специална обработка. При празни входни данни не се създава енкодирано съдържание. Много дългите входни данни може да нараснат значително, защото всеки енкодиран байт заема три знака.

Защо URL декодирането е неуспешно или дава нечетим резултат?

Декодирането обикновено е неуспешно, когато входните данни са енкодирани по различни правила, енкодирани са повече от веднъж или не представляват текст в очакваното кодиране на знаците.

  • Различна обработка на интервалите. Декодерът за данни от формуляри приема + за интервал, докато строгият процентен декодер може да го остави като знак плюс.
  • Двойно енкодиране. Знакът за процент в %26 също може да бъде преобразуван в %25, което дава %2526. След едно декодиране резултатът ще бъде %26, а не първоначалният амперсанд.
  • Неправилно кодиране на знаците. Ако UTF-8 байтове бъдат декодирани като друг набор от знаци, може да се получат заместващи символи или нечетими букви.
  • Двоични вместо текстови данни. Декодираните байтове може да представляват изображение, архив или друг файл. Ако бъдат показани като текст, резултатът ще е нечетим.
  • Неправилен формат или азбука. URL-safe Base64, стандартният Base64 и процентното енкодиране са различни формати. Прилагането на URL декодер към Base64 текст няма да възстанови търсената стойност.

URL енкодирането няма знаци за допълване. Ако декодерът съобщава за липсващо допълване, входните данни вероятно са в Base64 или друг формат с допълване, а не процентно енкодиран текст.

Често задавани въпроси

Има ли разлика между главни и малки букви в процентните escape последователности?

Не. Шестнадесетичните букви в процентните escape последователности не зависят от регистъра, така че %2F и %2f представляват наклонена черта. За последователно представяне се препоръчват главни шестнадесетични букви.

Може ли URL енкодирането да преобразува международно име на домейн?

Не. Етикети на домейни, например име, съдържащо é, обикновено трябва да се обработят като интернационализирани имена на домейни и да се преобразуват в ASCII Punycode формат, започващ с xn--. Процентното енкодиране се използва за други части на URL адреса и не бива да се приема като заместител на това преобразуване.

Какво става с новите редове и табулациите?

Байтовете за табулации и нови редове се енкодират процентно, защото не могат да присъстват директно в обикновена URL стойност. Табулацията обикновено се представя като %09, а краят на реда зависи от това дали източникът използва знаци LF, или CRLF.

Защо енкодираният URL адрес не работи, когато го поставя в приложение?

Възможно е приложението да очаква необработена стойност и да я енкодира само, което води до двойно енкодиране. То може също да отхвърли URL адреса заради ограничение на общата дължина или защото запазен знак е бил енкодиран в структурна част на адреса. Преди да енкодираш, провери коя точно част изисква приложението.

Безопасно ли е да споделям енкодирани данни от низа на заявката?

Не. Процентното URL енкодиране променя само начина на представяне, а браузърите и инструментите за разработчици могат да покажат първоначалната стойност. Преди да споделиш връзка, прегледай параметрите на заявката за имейл адреси, препратки към акаунти, токени за достъп и други данни, които не бива да се разкриват.

Сподели

Подобни инструменти

Декодер на URL адреси

Декодирайте URL входа обратно в оригиналния му формат с нашия инструмент за декодиране на URL за лесно извличане на данни.

4,822
71

Популярни инструменти