Je veux convertir une chaîne en URL et, au lieu d'un espace, il faut un "+" entre les mots-clés.Convertir l'espace en "+" en utilisant C#
Par exemple:
"Hello I am"
à:
"Hello+I+am"
Comment dois-je faire?
Je veux convertir une chaîne en URL et, au lieu d'un espace, il faut un "+" entre les mots-clés.Convertir l'espace en "+" en utilisant C#
Par exemple:
"Hello I am"
à:
"Hello+I+am"
Comment dois-je faire?
String input = "Hello I am";
string output = input.Replace(" ", "+");
En supposant que vous voulez seulement remplacer les espaces par points positifs, et ne pas faire plein codage URL, vous pouvez utiliser le Replace
intégré méthode:
string withSpaces = "Hello I am";
string withPluses = withSpaces.Replace(' ', '+');
Vous pouvez utiliser string.Replace
:
"Hello I am".Replace(' ', '+');
Si vous voulez une chaîne url encode (donc pas uniquement des espaces sont pris en charge), utilisez Uri.EscapeUriString
:
Uri.EscapeUriString("Hello I am");
De MSDN:
Par défaut, la méthode
EscapeUriString
convertit tous les caractères, à l'exception des caractères non réservés RFC 2396, à leur représentation hexadécimale. Si l'analyse des identificateurs de ressources internationales (IRI) ou du nom de domaine internationalisé (IDN) est activée, la méthode EscapeUriString convertit tous les caractères, à l'exception des caractères non réservés RFC 3986, en leur représentation hexadécimale. Tous les caractères Unicode sont convertis au format UTF-8 avant d'être échappés.
Notez que l'utilisation de 'EscapeUriString' produira *" Hello% 20I% 20am "*, pas *" Hello + I + am "*. Cela ne devrait pas vraiment être un problème dans tout système sain. – LukeH
vous pouvez essayer String.Replace
"Hello I am".Replace(' ','+');
string s = "Hello I am";
s = s.Replace(" ", "+");
Il est préférable d'utiliser 'String.Replace (char, char)' plutôt que 'String.Replace (string, string)' – abatishchev
Pour les URL, je vous suggère fortement d'utiliser Server.UrlEncode (dans ASP.NET) ou Uri.EscapeUriString (partout ailleurs) au lieu de String. Remplacer.
Pour répondre à la « convertir une chaîne à une URL » partie de votre question (vous ne devriez pas convertir manuellement la chaîne si vous voulez une URL correcte):
string url = "http://www.baseUrl.com/search?q=" + HttpUtility.UrlEncode("Hello I am");
Vous appelez Url Encode sur chaque paramètre pour encoder correctement les valeurs.
Utilisez 'String.Format' pour plus de lisibilité – abatishchev
pour l'aide, mais j'ai seulement besoin de convertir les espaces en plus si la chaîne contient plus d'un mot . Comment puis-je construire dans cette condition? – klopske
ça marche maintenant! J'ai oublié ".Text" derrière txtSearch: S – klopske