2011-11-29 19 views
6

Abbiamo implementato una connessione di autenticazione HTTP, codificata in C# con Uri.EscapeDataString().C# Uri.EscapeDatastring() equivalente per Java

Sto provando a creare un'applicazione di java test identica alla stessa identica alla versione C#, ma URLEncoder.encode(string, "UTF-8") aggiunge una codifica aggiuntiva che non è esattamente la stessa della funzione C# Uri.EscapeDataString().

Qual è il metodo di codifica equivalente?

risposta

2

Il modo migliore che ho trovato per farlo è quello di utilizzare il URL.toURI().toString() combinata:

String uriEncodeVariable = "https://localhost:443"; 
URL tempURL = new URL(uriEncodeVariable); 
String uriResult = tempURL.toURI().toString(); 
-1

Non sono molto fluente in C# ma sembra che tu abbia bisogno di qualcosa come URLEncoder? Diamo un'occhiata a SO 213506 (http://stackoverflow.com/questions/213506/java-net-urlencoder-encodestring-is-deprecated-what-should-i-use-instead)?

+0

Come detto nella domanda, utilizzando URLEncoder.encode non produce lo stesso tipo di stringa codificata. –

+0

Mi dispiace per il fatto che non sia stato del tutto sveglio quando ho letto il tuo testo! –

0

Dai uno sguardo ad Apache StringScapeUtils, sicuramente uno dei metodi di quella classe sarà utile.

+0

Sfortunatamente questi metodi forniscono solo modi per evitare le stringhe standard in alcuni formati, in realtà non codificano il modo in cui 'Uri.EscapeDataString()' fa. –