Freigeben über


UrlCanonicalizeW-Funktion (shlwapi.h)

Konvertiert eine URL-Zeichenfolge in kanonische Form.

Syntax

LWSTDAPI UrlCanonicalizeW(
  [in]      PCWSTR pszUrl,
  [out]     PWSTR  pszCanonicalized,
  [in, out] DWORD  *pcchCanonicalized,
            DWORD  dwFlags
);

Parameter

[in] pszUrl

Typ: PCTSTR-

Ein Zeiger auf eine mit Null beendete Zeichenfolge mit maximaler Länge INTERNET_MAX_URL_LENGTH, die eine URL-Zeichenfolge enthält. Wenn die Zeichenfolge nicht auf eine Datei verweist, muss sie ein gültiges Schema wie "http://" enthalten.

[out] pszCanonicalized

Typ: PTSTR-

Ein Zeiger auf einen Puffer, der, wenn diese Funktion erfolgreich zurückgegeben wird, die konvertierte URL als null-beendete Zeichenfolge empfängt.

[in, out] pcchCanonicalized

Typ: DWORD*-

Ein Zeiger auf einen Wert, der beim Eintrag auf die Anzahl der Zeichen im pszCanonicalized Puffer festgelegt ist.

dwFlags

Typ: DWORD-

Die Flags, die angeben, wie die URL in kanonische Form konvertiert wird. Die folgenden Flags können kombiniert werden.

URL_UNESCAPE (0x10000000)

Heben Sie die Escape-Escape-Sequenzen auf, die die URLs enthalten, mit zwei Ausnahmen. Die Escapesequenzen für "?" und "#" sind nicht escaped. Wenn eines der URL_ESCAPE_XXX Flags ebenfalls festgelegt ist, werden die beiden URLs zuerst nicht escaped, dann kombiniert und dann escaped.

URL_ESCAPE_UNSAFE (0x20000000)

Ersetzen Sie unsichere Zeichen durch ihre Escapesequenzen. Unsichere Zeichen sind die Zeichen, die während des Transports im Internet geändert werden können, und enthalten die Zeichen (<, >, ", #, {, }, |, , ^, [, ], und ') . Dieses Flag gilt für alle URLs, einschließlich undurchsichtiger URLs.

URL_PLUGGABLE_PROTOCOL (0x40000000)

Kombinieren Sie URLs mit clientdefiniert austauschbaren Protokollen gemäß der W3C-Spezifikation. Dieses Flag gilt nicht für Standardprotokolle wie ftp, http, gopher usw. Wenn dieses Flag festgelegt ist, vereinfacht UrlCombine- keine URLs, sodass keine URL_DONT_SIMPLIFYfestgelegt werden müssen.

URL_ESCAPE_SPACES_ONLY (0x04000000)

Ersetzen Sie nur Leerzeichen durch Escapesequenzen. Dieses Flag hat Vorrang vor URL_ESCAPE_UNSAFE, gilt jedoch nicht für undurchsichtige URLs.

URL_DONT_SIMPLIFY (0x08000000)

Behandeln Sie "/./" und "/.. /" in einer URL-Zeichenfolge als Literalzeichen, nicht als Abkürzung für die Navigation. Weitere Erläuterungen finden Sie in den Anmerkungen.

URL_NO_META (0x08000000)

Definiert, der mit URL_DONT_SIMPLIFYidentisch ist.

URL_ESCAPE_PERCENT (0x00001000)

Wandeln Sie jedes Vorkommen von "%" in die Escapesequenz um.

URL_ESCAPE_AS_UTF8 (0x00040000)

Windows 7 und höher. Prozentcodierung aller Nicht-ASCII-Zeichen als UTF-8-Entsprechungen.

Rückgabewert

Typ: HRESULT-

Wenn diese Funktion erfolgreich ist, wird S_OKzurückgegeben. Andernfalls wird ein HRESULT- Fehlercode zurückgegeben.

Bemerkungen

Diese Funktion führt solche Aufgaben aus, z. B. das Ersetzen unsicherer Zeichen durch ihre Escapesequenzen und reduzierende Sequenzen wie ".....".

Enthält eine URL-Zeichenfolge "/.. /" oder "/./", UrlCanonicalize behandelt die Zeichen als Hinweis auf die Navigation in der URL-Hierarchie. Die Funktion vereinfacht die URLs, bevor sie kombiniert werden. Beispiel: "/hello/cruel/.. /world" wird auf "/hello/world" vereinfacht. Ausnahmen dieses Standardverhaltens treten in folgenden Fällen auf:

  • Wenn das URL_DONT_SIMPLIFY Flag in dwFlagsfestgelegt ist, vereinfacht die Funktion keine URLs. In diesem Fall "/hello/grausam/.. /world" bleibt wie es ist.
  • Wenn "/.. /" oder "/./" ist das erste Segment im Pfad (z. B. "http://domain/../path1/path2/file.htm"), UrlCanonicalize gibt den Pfad genau so aus, wie er eingegeben wurde.

Anmerkung

Der Header "shlwapi.h" definiert UrlCanonicalize als Alias, der automatisch die ANSI- oder Unicode-Version dieser Funktion basierend auf der Definition der UNICODE-Präprozessorkonstante auswählt. Das Mischen der Verwendung des codierungsneutralen Alias mit Code, der nicht codierungsneutral ist, kann zu Nichtübereinstimmungen führen, die zu Kompilierungs- oder Laufzeitfehlern führen. Weitere Informationen finden Sie unter Konventionen für Funktionsprototypen.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Windows 2000 Professional, Windows XP [nur Desktop-Apps]
mindestens unterstützte Server- Windows 2000 Server [nur Desktop-Apps]
Zielplattform- Fenster
Header- shlwapi.h
Library Shlwapi.lib
DLL- Shlwapi.dll (Version 5.0 oder höher)

Siehe auch

Behandeln von Uniform Resource Locators