2013-11-20 22 views
8

Perché la documentazione di .NET per HttpUtility.UrlPathEncode for .NET 4.5 StatoPerché HttpUtility.UrlPathEncode è contrassegnato come "non utilizzare"?

Non utilizzare; inteso solo per la compatibilità del browser. Utilizza UrlEncode.

UrlEncode non fa lo stesso, codifica una stringa per la parte parametro di un URL, non per la parte del percorso. C'è un modo migliore per codificare una stringa per la parte del percorso e perché non dovrei usare questa funzione, che è nel framework dal 1.1 e funziona?

+1

"può essere usato per codificare l'intero URL, compresi i valori di query-string". Ma UrlEncode non funziona per gli URL relativi, almeno se non hanno parametri. codifica spazi come + e inoltre codifica le barre nel percorso. – Dehalion

+1

Sto supponendo. Net rileva un browser che ha limitato/nessun supporto per i caratteri Unicode nel percorso e li codifica per evitare problemi, ma mi piacerebbe sapere per certo ... – Basic

risposta

2

sulla base di MSDN, si consiglia di utilizzare UrlEncode al concessionario che si sta lavorando per tutte le piattaforme e browser

È possibile codificare un URL utilizzando il metodo UrlEncode o il metodo UrlPathEncode. Tuttavia, i metodi restituiscono risultati diversi. Il metodo UrlEncode converte ogni carattere di spazio in un carattere più (+). Il metodo UrlPathEncode converte ogni carattere di spazio nella stringa "% 20", che rappresenta uno spazio in notazione esadecimale. Utilizzare il metodo UrlPathEncode quando si codifica la porzione di percorso di un URL per garantire un URL decodificato coerente, indipendentemente dalla piattaforma o dal browser che esegue la decodifica.

anche UrlEncode sta usando codifica UTF-8, quindi se si sta inviando stringa di query in lingua diversa come l'arabo si dovrebbe usare UrlEncode

Problemi correlati