Condividi tramite


Funzione UrlCanonicalizeA (shlwapi.h)

Converte una stringa dell'URL in forma canonica.

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 contenente 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 restituisce correttamente, riceve l'URL convertito come stringa con terminazione Null.

[in, out] pcchCanonicalized

Tipo: DWORD*

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

dwFlags

Tipo: DWORD

Flag che specificano il modo in cui l'URL viene convertito in formato canonico. È possibile combinare i flag seguenti.

URL_UNESCAPE (0x10000000)

Annullare l'escape di qualsiasi sequenza di escape che gli URL contengono, con due eccezioni. Non vengono rimosse le sequenze di escape per "?" e "#". Se viene impostato anche uno dei flag di URL_ESCAPE_XXX, i due URL vengono prima non in escape, quindi combinati, quindi escape.

URL_ESCAPE_UNSAFE (0x20000000)

sostituisce i caratteri non sicuri con le rispettive 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, come 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)

sostituisce 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)

considera "/./" e "/../" in una stringa dell'URL come caratteri letterali, non come sintassi abbreviata per lo spostamento. Per altre discussioni, vedere Osservazioni.

URL_NO_META (0x08000000)

Definito come URL_DONT_SIMPLIFY.

URL_ESCAPE_PERCENT (0x00001000)

converte tutte le occorrenze di "%" nella rispettiva sequenza di escape.

URL_ESCAPE_AS_UTF8 (0x00040000)

Windows 7 e versioni successive. Codifica per 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 .

Commenti

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

Se una stringa URL contiene "/.. /" o "/./", UrlCanonicalize considera i caratteri come indica la navigazione nella gerarchia di URL. La funzione semplifica gli URL prima di combinarli. Ad esempio"/hello/crudele/.. /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/crudele/.. /world" è 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 input.

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 preprocessore UNICODE. La combinazione dell'utilizzo dell'alias di codifica neutrale con il codice che non è neutrale dalla codifica può causare errori di corrispondenza che causano errori di compilazione o runtime. Per altre informazioni, vedere Convenzioni per i prototipi di funzione.

Requisiti

   
Client minimo supportato Windows 2000 Professional, Windows XP [solo app desktop]
Server minimo supportato Windows 2000 Server [solo app desktop]
Piattaforma di destinazione Windows
Intestazione shlwapi.h
Libreria Shlwapi.lib
DLL Shlwapi.dll (versione 5.0 o successiva)

Vedi anche

Gestione di localizzatori di risorse uniformi