Query-String-Parameter richtig kodieren
Das Tool hat zwei Modi. „Komponente“ (encodeURIComponent) ist für einen einzelnen Parameternamen oder -wert gedacht, „Vollständige URL“ (encodeURI) für eine komplette URL mit bereits korrekter Struktur. Eine Verwechslung ist die häufigste Ursache für kaputte Query-Strings.
Durchgerechnetes Beispiel
„Vollständige URL“ lässt das & im Wert stehen, daher liest der Server zwei Parameter statt einem.
- Eingabe
- https://example.com/search?q=salt & pepper&page=2
- Ergebnis ·
encodeURI() - https://example.com/search?q=salt%20&%20pepper&page=2
Parameter, die ein Server liest
- "q" = "salt "
- " pepper" = ""
- "page" = "2"
Wird der Wert zuerst im Modus „Komponente“ kodiert, bleibt er ein einziger Parameter.
- Eingabe
- salt & pepper
- Ergebnis ·
encodeURIComponent() - salt%20%26%20pepper
https://example.com/search?q=salt%20%26%20pepper&page=2
Parameter, die ein Server liest
- "q" = "salt & pepper"
- "page" = "2"
Modus „Komponente“ und „Vollständige URL“ im Zeichenvergleich
| Zeichen | Komponente | Vollständige URL |
|---|---|---|
| : | %3A | : |
| / | %2F | / |
| ? | %3F | ? |
| # | %23 | # |
| & | %26 | & |
| = | %3D | = |
| + | %2B | + |
| ␠ | %20 | %20 |
| é | %C3%A9 | %C3%A9 |
So geht das Tool vor
- Kodieren Sie jeden Parameternamen und -wert einzeln im Modus „Komponente“, der & = ? # + und / maskiert.
- Verbinden Sie die kodierten Paare als name=wert mit & und hängen Sie das Ergebnis hinter dem ? an die URL.
- Nutzen Sie „Vollständige URL“ nur für eine ganze URL: Dieser Modus lässt : / ? # & = + unverändert und schützt daher keinen Wert, der diese Zeichen enthält.