Leerzeichen sind kein gültiger Bestandteil von URLs. Je nach der Position von Leerzeichen in der URL, gelten andere Regeln für das korrekten URL-Encoding von Leerzeichen.
Offizielle Internetstandards werden in sogenannten RFCs (Requests for Comments) festgelegt. Im zuständigen RFC 3986 werden Leerzeichen als „Unsafe characters“ definiert. Für diese ist vorgesehen, dass sie nicht unbehandelt in einer URL stehen dürfen, sondern umgewandelt (encoded) werden müssen.
Sonderzeichen in URLs werden üblicherweise durch das Prozentzeichen und eine Zahlenfolge ausgedrückt. Für Leerzeichen ist das %20. Für häufig benutze Sonderzeichen gibt es eine Abkürzung dieser Schreibweise. Bei Leerzeichen ist dafür das Pluszeichen („+“) definiert.
URL-Encoding: mit %20 oder dem Plus-Zeichen (+)?
Die nächste Frage ist damit, ob Leerzeichen in URLs mit der Zeichenfolge %20 oder mit einem + umgeschrieben/encoded werden sollen. Hierzu hilft uns John Müller auf Google+ weiter:
Bei der Antwort („Im Query String kannst Du beides nutzen, während im Rest der URL %20 genutzt werden soll„) hilft es, kurz zu erklären, welche Teile der URL damit gemeint sind.
Aufbau von URLs
Wie im Frag SISTRIX-Artikel zum URL-Aufbau beschrieben, bestehen URLs aus verschiedenen Bestandteilen.
Der Query String ist der Teil hinter dem ?, ab dem die Parameter beginnen (im Bild mit der Zahl 7 in Orange markiert). Somit gilt:
- Leerzeichen in URLs müssen in %20 umgewandelt werden. Dieses URL-Encoding kann für die komplette URL angewendet werden.
- Ausschließlich in den Parametern (also dem Teil der URL nach einem Fragezeichen), kann das %20 durch ein Plus-Zeichen (+) ersetzt werden. Das ist aber lediglich eine Option, keine Pflicht.
Zusammenfassende Empfehlung
Leerzeichen sind in URLs nicht zulässig. Sie müssen durch die Zeichenfolge %20 ersetzt werden. Im Query-String-Teil der URL kann %20 durch ein Plus-Zeichen (+) abgekürzt werden.