我希望将字符串转换为URL,并且在关键字之间需要用"+"代替空格。
例如:
例如:
"Hello I am"
to:
"Hello+I+am"
我该怎么做呢?
"Hello I am"
to:
"Hello+I+am"
我该怎么做呢?
对于URL,我强烈建议使用 Server.UrlEncode(在ASP.NET中)或者Uri.EscapeUriString(在其他地方)代替 String.Replace。
String input = "Hello I am";
string output = input.Replace(" ", "+");
string.Replace
来实现:"Hello I am".Replace(' ', '+');
如果您想对字符串进行URL编码(不仅仅是处理空格),请使用Uri.EscapeUriString
:
Uri.EscapeUriString("Hello I am");
来自 MSDN:
默认情况下,
EscapeUriString
方法会将除了 RFC 2396 未保留字符之外的所有字符都转换为它们的十六进制表示形式。如果启用了国际资源标识符 (IRIs) 或国际化域名 (IDN) 解析,则 EscapeUriString 方法将除了 RFC 3986 未保留字符之外的所有字符都转换为它们的十六进制表示形式。在进行转义之前,所有 Unicode 字符都会被转换为 UTF-8 格式。
EscapeUriString
将产生“Hello%20I%20am”,而不是“Hello+I+am”。但在任何理智的系统中,这实际上不应该成为问题。 - LukeHReplace
方法:(参考链接)
string withSpaces = "Hello I am";
string withPluses = withSpaces.Replace(' ', '+');
string s = "Hello I am";
s = s.Replace(" ", "+");
String.Replace(char,char)
而不是 String.Replace(string,string)
。 - abatishchevstring url = "http://www.baseUrl.com/search?q=" + HttpUtility.UrlEncode("Hello I am");
你需要对每个参数调用 UrlEncode 方法来正确编码数值。