URL Encoder/Decoder Часті питання

Кодування та декодування URL-рядків

Яка різниця між encodeURI та encodeURIComponent?

encodeURI() кодує повний URL, зберігаючи URL синтаксис типу :, /, ?, &. encodeURIComponent() кодує окремі компоненти, кодуючи майже все включно з цими символами. Використовуйте encodeURIComponent() для значень параметрів.

Чому пробіли іноді %20, а іноді +?

У шляхах та фрагментах URL пробіли завжди %20. У параметрах запиту застаріле application/x-www-form-urlencoded кодування використовує + для пробілів. Сучасний код повинен використовувати %20 всюди.

Чи потрібно кодувати кириличні символи?

Так, всі не-ASCII символи, включаючи кирилицю, китайські ієрогліфи, емодзі тощо повинні бути URL закодовані. Браузери можуть показувати їх розкодованими, але внутрішньо вони закодовані.

Що таке подвійне кодування?

Подвійне кодування відбувається, коли ви кодуєте вже закодовані дані. %20 (пробіл) стає %2520. При декодуванні це дає %20, а не пробіл. Завжди знайте, чи дані вже закодовані.

Чи потрібно кодувати весь URL?

Ні, кодуйте лише динамічні частини. Якщо ви будуєте example.com/search?q=${userInput}, кодуйте лише userInput з encodeURIComponent(), а не весь URL.

Чи можна використовувати URL кодування для безпеки?

Ні! URL кодування - це для правильності, а не безпеки. Воно не захищає від XSS, SQL injection або інших атак. Використовуйте правильне санітизування та параметризовані запити для безпеки.

Спробувати інструмент

Кодування та декодування URL-рядків

URL Encoder/Decoder