Conversione spazio per “+” utilizzando C #
-
10-10-2019 - |
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?
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.
"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.