Condividi tramite


Funzione UrlCanonicalizeA (shlwapi.h)

Converte una stringa URL in formato canonico.

Sintassi

LWSTDAPI UrlCanonicalizeA(
  [in]      PCSTR pszUrl,
  [out]     PSTR  pszCanonicalized,
  [in, out] DWORD *pcchCanonicalized,
            DWORD dwFlags
);

Parametri

[in] pszUrl

Tipo: PCTSTR

Puntatore a una stringa con terminazione Null di lunghezza massima INTERNET_MAX_URL_LENGTH che contiene una stringa URL. Se la stringa non fa riferimento a un file, deve includere uno schema valido, ad esempio "http://".

[out] pszCanonicalized

Tipo: PTSTR

Puntatore a un buffer che, quando questa funzione viene restituita correttamente, riceve l'URL convertito come stringa con terminazione Null.

[in, out] pcchCanonicalized

Tipo: DWORD*

Puntatore a un valore che, nella voce, viene impostato sul numero di caratteri nel buffer pszCanonicalized.

dwFlags

Tipo: DWORD

Flag che specificano la modalità di conversione dell'URL in formato canonico. È possibile combinare i flag seguenti.

URL_UNESCAPE (0x10000000)

Annullare l'escape di tutte le sequenze di escape contenute negli URL, con due eccezioni. Le sequenze di escape per "?" e "#" non sono precedute da escape. Se viene impostato anche uno dei flag di URL_ESCAPE_XXX, i due URL vengono prima senza escape, quindi combinati, quindi preceduti da un escape.

URL_ESCAPE_UNSAFE (0x20000000)

Sostituire i caratteri non sicuri con le sequenze di escape. I caratteri non sicuri sono i caratteri che possono essere modificati durante il trasporto in Internet e includono i caratteri (<, >, ", #, {, }, |, , ^, [, ]e '). Questo flag si applica a tutti gli URL, inclusi gli URL opachi.

URL_PLUGGABLE_PROTOCOL (0x40000000)

Combinare gli URL con i protocolli pluggable definiti dal client, in base alla specifica W3C. Questo flag non si applica ai protocolli standard, ad esempio ftp, http, gopher e così via. Se questo flag è impostato, urlCombine non semplifica gli URL, quindi non è necessario impostare anche URL_DONT_SIMPLIFY.

URL_ESCAPE_SPACES_ONLY (0x04000000)

Sostituire solo gli spazi con sequenze di escape. Questo flag ha la precedenza su URL_ESCAPE_UNSAFE, ma non si applica agli URL opachi.

URL_DONT_SIMPLIFY (0x08000000)

Trattare "/./" e "/.. /" in una stringa URL come caratteri letterali, non come abbreviato per la navigazione. Per altre informazioni, vedere la sezione Osservazioni.

URL_NO_META (0x08000000)

Definito come uguale a URL_DONT_SIMPLIFY.

URL_ESCAPE_PERCENT (0x00001000)

Convertire qualsiasi occorrenza di "%" nella sequenza di escape.

URL_ESCAPE_AS_UTF8 (0x00040000)

Windows 7 e versioni successive. Codifica in percentuale tutti i caratteri non ASCII come equivalenti UTF-8.

Valore restituito

Tipo: HRESULT

Se questa funzione ha esito positivo, restituisce S_OK. In caso contrario, restituisce un codice di errore HRESULT.

Osservazioni

Questa funzione esegue attività come la sostituzione di caratteri non sicuri con le relative sequenze di escape e sequenze di compressione come ".....".

Se una stringa URL contiene "/.. /" o "/./", UrlCanonicalize considera i caratteri come indica la navigazione nella gerarchia url. La funzione semplifica gli URL prima di combinarli. Ad esempio, "/hello/cruel/.. /world" è semplificato in "/hello/world". Le eccezioni a questo comportamento predefinito si verificano in questi casi:

  • Se il flag URL_DONT_SIMPLIFY è impostato in dwFlags, la funzione non semplifica gli URL. In questo caso, "/hello/cruel/.. /world" viene lasciato così come è.
  • Se "/.. /" o "/./" è il primo segmento nel percorso ,ad esempio "http://domain/../path1/path2/file.htm"), UrlCanonicalize restituisce il percorso esattamente come è stato immesso.

Nota

L'intestazione shlwapi.h definisce UrlCanonicalize come alias che seleziona automaticamente la versione ANSI o Unicode di questa funzione in base alla definizione della costante del preprocessore UNICODE. La combinazione dell'utilizzo dell'alias indipendente dalla codifica con il codice non indipendente dalla codifica può causare mancate corrispondenze che generano errori di compilazione o di runtime. Per altre informazioni, vedere convenzioni di per i prototipi di funzioni.

Fabbisogno

Requisito Valore
client minimo supportato Windows 2000 Professional, Windows XP [solo app desktop]
server minimo supportato Windows 2000 Server [solo app desktop]
piattaforma di destinazione Finestre
intestazione shlwapi.h
libreria Shlwapi.lib
dll Shlwapi.dll (versione 5.0 o successiva)

Vedere anche

la gestione di localizzatori di risorse uniformi