Een tekenreeks URL-coderen
Procentcodering vervangt elk teken dat niet veilig is in een URL door % gevolgd door de hexadecimale waarde van elk van zijn UTF-8-bytes. De modus Component, die encodeURIComponent() gebruikt, is de juiste keuze voor één querywaarde of padsegment.
Uitgewerkt voorbeeld
| Teken | UTF-8-bytes | Component |
|---|---|---|
| ␠ | %20 | %20 |
| & | %26 | %26 |
| = | %3D | %3D |
| / | %2F | %2F |
| ? | %3F | %3F |
| é | %C3 %A9 | %C3%A9 |
| 😀 | %F0 %9F %98 %80 | %F0%9F%98%80 |
De modus Component codeert de hele zin tot één veilige waarde.
- Invoer
- rock & roll/size=XL? café 😀
- Resultaat ·
encodeURIComponent() - rock%20%26%20roll%2Fsize%3DXL%3F%20caf%C3%A9%20%F0%9F%98%80
De modus Volledige URL laat & = / ? ongemoeid; gebruik hem dus alleen voor een complete URL.
- Invoer
- rock & roll/size=XL? café 😀
- Resultaat ·
encodeURI() - rock%20&%20roll/size=XL?%20caf%C3%A9%20%F0%9F%98%80
Zo pakt de tool het aan
- Letters A–Z en a–z, cijfers 0–9 en - _ . ! ~ * ' ( ) worden nooit gewijzigd.
- Elk ander teken wordt omgezet in UTF-8-bytes en elke byte wordt geschreven als % plus twee hexadecimale cijfers in hoofdletters: é is twee bytes, de meeste emoji zijn vier bytes.
- De modus Component codeert ook de gereserveerde tekens : / ? # [ ] @ & = + $ , ; zodat ze de structuur van de URL niet kunnen veranderen.