URL Enkodierung
Wertauflöser - Kurzfassung
Zweck: Ersetzt ungültige oder Sonderzeichen innerhalb einer übergebenen URL durch universelle Zeichen
Der URL Enkodierung-Wertauflöser wendet die URL-Kodierung ("Prozentkodierung") auf eine als Eingabewert übergebene Zeichenfolge an.
Die URL-Kodierung ersetzt ausgewählte Zeichen in durch zweistellige Hexadezimal-Codes (00-FF), denen jeweils ein Prozentzeichen (%) vorangestellt wird.
Die "enkodierte" Zeichenfolge verwendet nur solche ASCII-Zeichen, die z. B. im String-Wert eines URI-Parameters verwendet werden können, ohne dass es zu Überschneidungen mit syntaktisch relevanten Zeichen der URI (".", "?", "/", "&", "=", usw.) kommt.
Durch Gruppen von bis zu drei Hex-Codes können außerdem sämtliche Zeichen des UTF-8-Zeichensatzes kodiert werden.
Einfache Beispiele:
Eingabewert (String) |
URL-Enkodierung |
Anmerkungen |
Smith&Wesson |
Smith%26Wesson |
Das Kaufmanns-Und (&) wird als %26 kodiert, also per Verweis auf das Zeichen mit dem Dezimalkode 38 (= 2 x 16 + 6) im ASCII-Zeichensatz. |
Pratt & Whitney |
Pratt%20%26%20Whitney |
Neben dem Kaumfammns-Und (&) müssen hier auch die umgebenden Leerzeichen per Hex-Wert %20 als ASCII-Zeichen Nr. 32 (= 2 x 16) "maskiert" werden. |
1€=$1.09 |
1%E2%82%AC%3D%241.09 |
Das Gleichheitszeichen (=) wird als %3D kodiert, das Dollar-Zeichen ($) als %24, das Euro-Symbol (€) erfordert als UTF-8 Sonderzeichen einen Code mit zwei Bytes: %E2%82 |
Les Champs-Élysées |
Les%20Champs-%C3%89lys%C3%A9es |
Das Leerzeichen erscheint als %20, die beiden mit Akzenten versehenen Vokale (é und É) erfordern als UTF-8-Sonderzeichen je zwei Bytes: %C3%89 und %C3%A9 |
Übergrößenänderungsschneiderei |
%C3%9Cbergr%C3%B6%C3%9Fen%C3%A4nderungsschneiderei |
Die deutschen Sonderzeichen (ä, ö, Ü und ß) werden hier durch UTF-8-Codes mit je zwei Hex-Bytes ersetzt. |
https://lobster-world.com/?s=API |
https%3A%2F%2Flobster-world.com%2F%3Fs%3DAPI |
Hier wurde eine komplette URL (inkl. Query-Parameter "s" mit einem Wert "API") enkodiert, sodass die Zeichen ":", "/", "?" und "=" durch die zugehörigen ASCII-Hex-Codes ersetzt werden. |
https://lobster-world.com/?s=No%20Code |
https%3A%2F%2Flobster-world.com%2F%3Fs%3DNo%2520Code |
Hier enthält der Parameter-Wert für die Suche bereits URL-Kode (für das Leerzeichen im Suchtext "No Code"), sodass das bereits kodierte Prozentzeichen (%) erneut kodiert wird. Anstelle des Leerzeichens erscheint damit die Zeichenfolge %2520, in der %25 das Prozentzeichen codiert. Die doppelt kodierte URL kann (wie auch im vorherigen Beispiel) natürlich nicht direkt verwendet werden. Sie muss doppelt dekodiert werden, um eine zielführende URL zu erhalten. |
►WICHTIG◄ Falls es sich beim Eingabewert nicht um eine Zeichenfolge (String) handelt, wird das String-Abbild des Eingabewerts enkodiert. Der Aufbau der Zeichenfolge, die als String-Abbild verwendet wird, hängt einerseits vom Datentyp des Eingabewerts ab. Andererseits kann je Ausführungskontext (Client vs. Server) eine spezifische Abbildungsvorschrift greifen, die ggf. auch Lokalisierungen in der Sprachverwaltung bzw. Firmenspezifische Sprachanpassungen berücksichtigen kann. Die folgende Tabelle verdeutlicht diese Einflüsse an zwei Beispielen:
Konfigurationsbeispiel |
Ausführungskontext |
String-Abbild |
Anmerkungen |
||
Eingabewert aus der Dynamischen Aufzählung Firmentyp:
|
Server |
unerheblich |
CNE |
CNE |
kein Zeichen "umkodiert" |
Client |
Deutsch (DE) |
Empfänger |
Empf%C3%A4nger |
Der Umlaut "Ä" im String-Abbild wird durch die zugehörigen UTF-8-Hexadezimalwerte (C3 und A4) in "Prozentkodierung" ersetzt. |
|
Englisch (EN) |
Consignee |
Consignee |
kein Zeichen "umkodiert" |
||
Eingabewert ist ein DateTime-Datenobjekt, hier erzeugt mit einem Relatives Datum mit Zeit-Wertauflöser:
|
Server |
unerheblich |
2023-01-01 00:00:00.000 Africa/Cairo (2022-12-31 22:00:00.000 UTC) |
2023-01-01+00%3A00%3A00.000+Africa%2FCairo+%282022-12-31+22%3A00%3A00.000+UTC%29 |
Standardformatierung des Servers für Zeitangaben (in Original-Zeitzone und UTC jeweils mit Uhrzeit inkl. Millisekunde) mit "umkodierten" Sonderzeichen (Leerzeichen |
Client |
Deutsch (DE) |
01.01.2023 00:00 |
01.01.2023%2000%3A00 |
Standard Datum-Zeit-Format des Clients gemäß den Lokalisierungen für die Aktuelle Sprache (lobsterui/dateFormat] [lobsterui/timeFormat]) |
|
Englisch (EN) |
01/01/2023 12:00 AM |
01%2F01%2F2023%2012%3A00%20AM |