URL Enkodierung


Wertauflöser - Kurzfassung

Zweck: Ersetzt ungültige oder Sonderzeichen innerhalb einer übergebenen URL durch universelle Zeichen

images/download/attachments/177907219/image-2024-8-7_11-39-44-version-1-modificationdate-1723023584143-api-v2.png

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

Aktuelle Sprache

String-Abbild

URL Enkodierung

Anmerkungen

Eingabewert aus der Dynamischen Aufzählung Firmentyp:

images/download/attachments/177907219/image-2024-8-8_12-28-5-version-1-modificationdate-1723112885738-api-v2.png

Server
(z. B. Ereignisbehandlungen)

unerheblich

CNE

CNE

kein Zeichen "umkodiert"

Client
(z. B. Client Workflow)

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:

images/download/attachments/177907219/image-2024-8-8_12-46-46-version-1-modificationdate-1723114006268-api-v2.png

Server
(z. B. Ereignisbehandlungen)

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
als +, Doppelpunkt, Schrägstrich, Klammern)

Client
(z. B. Client Workflow)

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])
mit "umkodierten" Sonderzeichen (Leerzeichen als %20, Doppelpunkt, Schrägstrich)

Englisch (EN)

01/01/2023 12:00 AM

01%2F01%2F2023%2012%3A00%20AM