Conversion de l'espace à « + » en utilisant C #
-
10-10-2019 - |
Question
Je veux convertir une chaîne à une URL et, au lieu d'un espace, il a besoin d'un « + » entre les mots-clés.
Par exemple:
"Hello I am"
à:
"Hello+I+am"
Comment dois-je faire?
La solution
String input = "Hello I am";
string output = input.Replace(" ", "+");
Autres conseils
Pour les URL, je vous suggère fortement d'utiliser Server.UrlEncode ( dans ASP.NET) ou Uri.EscapeUriString (partout d'autre) au lieu de String.Replace.
vous pouvez essayer String.Replace
"Hello I am".Replace(' ','+');
Vous pouvez utiliser string.Replace
:
"Hello I am".Replace(' ', '+');
Si vous voulez encode une chaîne url (donc non seulement des espaces sont pris en charge), l'utilisation Uri.EscapeUriString
:
Uri.EscapeUriString("Hello I am");
De MSDN:
Par défaut, la méthode
EscapeUriString
convertit tous les caractères, sauf RFC 2396 caractères non réservés, à leur représentation hexadécimale. Si Identifiers internationale des ressources (iris) ou nom de domaine internationalisé analyse syntaxique (IDN) est activé, la méthode EscapeUriString convertit tous les caractères, à l'exception des caractères non réservés RFC 3986, à leur représentation hexadécimale. Tous les caractères Unicode sont convertis au format UTF-8 avant d'être échappé.
En supposant que vous voulez seulement remplacer les espaces par points positifs, et ne pas faire plein codage URL, vous pouvez utiliser le haut- Replace
méthode:
string withSpaces = "Hello I am";
string withPluses = withSpaces.Replace(' ', '+');
string s = "Hello I am";
s = s.Replace(" ", "+");
Pour répondre à la partie « convertir une chaîne à une url » 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 à coder correctement les valeurs.