Encode or decode any string. Toggle mode, get percent-encoding instantly.
Encode uses encodeURIComponent (encodes everything except A-Z a-z 0-9 - _ . ! ~ * ' ( )). encodeURI leaves URL structure characters like : / ? # intact — use it for whole URLs, encodeURIComponent for single values.
encode: hello world? → hello%20world%3FencodeURI preserves : / ? # & for whole URLs. encodeURIComponent encodes those too, for embedding one value inside a query string.
A lone % or invalid hex (e.g. %ZZ, trailing %) is not valid percent-encoding.
No. All encoding runs in your browser.