Domanda

voglio convertire una stringa in un URL e, invece di uno spazio, ha bisogno di un "+" tra le parole chiave.

Per esempio:

"Hello I am"

a:

"Hello+I+am"

Come devo fare questo?

È stato utile?

Soluzione

String input = "Hello I am";
string output = input.Replace(" ", "+");

Altri suggerimenti

Per gli URL, vi consiglio caldamente di utilizzare Server.URLEncode ( in ASP.NET) o Uri.EscapeUriString (in tutto il mondo altro) al posto di String.Replace.

String.Replace

"Hello I am".Replace(' ','+');

È possibile utilizzare string.Replace :

"Hello I am".Replace(' ', '+');

Se si vuole codificare una stringa URL (quindi non solo gli spazi sono presi cura di), uso Uri.EscapeUriString :

Uri.EscapeUriString("Hello I am");

Da MSDN:

Per impostazione predefinita, il metodo EscapeUriString converte tutti i caratteri, ad eccezione RFC 2396 caratteri senza riserve, alla loro rappresentazione esadecimale. Se internazionale Resource Identifiers (IRIS) o Internationalized Domain Name (IDN) l'analisi è abilitata, il metodo EscapeUriString converte tutti i caratteri, ad eccezione di RFC 3986 caratteri senza riserve, alla loro rappresentazione esadecimale. Tutti i caratteri Unicode vengono convertiti in formato UTF-8 prima di essere sfuggito.

Supponendo che si desidera solo per sostituire gli spazi con vantaggi, e non fai URL completo di codifica, quindi è possibile utilizzare il built-in Replace metodo:

string withSpaces = "Hello I am";

string withPluses = withSpaces.Replace(' ', '+');
string s = "Hello I am";
s = s.Replace(" ", "+");

Per rispondere alla 'convertire una stringa in un URL' parte della tua domanda (non è necessario convertire manualmente la stringa se si desidera un URL corretto):

string url = "http://www.baseUrl.com/search?q=" + HttpUtility.UrlEncode("Hello I am");

Si chiama URL Encode su ogni parametro correttamente codificare i valori.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top