URL кодиране
Някои знаци не могат да се появяват в URL адреси (например пространства), други имат специално значение в URL адресите. Трябва да конвертираме специални знаци, за да съответстват на синтаксиса, дефиниран в спецификацията на W3 URI (RFC 3986). Това означава, че URL адресите трябва да съдържат само подмножество от специален ASCII символ: буквите и числата, с които сме запознати, както и някои запазени знаци, които се използват като контролни знаци в URL адреса.
Обработка на кодиране на URL адреси в JavaScript
В JavaScript както вградените функции на encodeURIComponent(), така и encodeURI() могат да бъдат кодирани чрез URL, като запазените символи в URL адреса се заменят с техните UTF-8 кодирани символи.
Повечето браузъри автоматично кодират URL адреси, като например кодиране на пространства до 20%, но винаги има някои изключения. За щастие, браузърите предоставят вградени функции за кодиране и декодиране на URL адреси: encodeURI, encodeURIComponent и decodeURI, decodeURIComponent. Въпросът е как да се използват тези функции и каква е разликата между тях.
encodeURI()
URL кодирането на низ е лесно, просто извикай encodeURI и подай низа, който искаш да кодираш. Тази функция връща кодирания URL.
decodeURI()
Тази функция декодира и извиква функцията decodeURI, предавайки кодирания низ, след което връща декодирания нормален низ.
encodeURIComponent()
Функцията encodeURIComponent трябва да се използва за кодиране на стойностите на параметрите на низа за заявки. Разликата между encodeURI и encodeURIComponent е, че encodeURIComponent кодира целия низ, докато encodeURI игнорира протоколния префикс ('http://'), както и домейна. encodeURIComponent е създаден да кодира всичко, докато encodeURI игнорира частта с домейн името в URL адреса. Когато тиКогато искате да кодирате стойността на параметъра в URL адреса, изберете функцията encodeURIComponent。
decodeURIComponent()
Функцията decodeURIComponent ще декодира кодирания низ на функцията encodeURIComponent и ще го възстанови до нормалното му съдържание.
Преглед:
|