【发布时间】:2011-05-10 03:32:10
【问题描述】:
我想将字符串转换为 url,而不是空格,它需要在关键字之间使用“+”。
例如:
"Hello I am"
到:
"Hello+I+am"
我该怎么做?
【问题讨论】:
标签: c# string character-replacement
我想将字符串转换为 url,而不是空格,它需要在关键字之间使用“+”。
例如:
"Hello I am"
到:
"Hello+I+am"
我该怎么做?
【问题讨论】:
标签: c# string character-replacement
对于 URL,我强烈建议使用 Server.UrlEncode(在 ASP.NET 中)或 Uri.EscapeUriString(在其他任何地方)而不是 String.Replace。
【讨论】:
String input = "Hello I am";
string output = input.Replace(" ", "+");
【讨论】:
你可以试试String.Replace
"Hello I am".Replace(' ','+');
【讨论】:
你可以使用string.Replace:
"Hello I am".Replace(' ', '+');
如果您想对字符串进行 url 编码(因此不仅要处理空格),请使用 Uri.EscapeUriString:
Uri.EscapeUriString("Hello I am");
来自 MSDN:
默认情况下,
EscapeUriString方法将所有字符(RFC 2396 未保留字符除外)转换为其十六进制表示。如果启用国际资源标识符 (IRI) 或国际化域名 (IDN) 解析,则 EscapeUriString 方法会将所有字符(RFC 3986 未保留字符除外)转换为其十六进制表示。所有 Unicode 字符在转义之前都会转换为 UTF-8 格式。
【讨论】:
EscapeUriString 将产生 "Hello%20I%20am",而不是 "Hello+I+am"。尽管在任何健全的系统中,这都不应该是一个真正的问题。
假设你只想用加号替换空格,而不做完整的URL编码,那么你可以使用内置的Replace方法:
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)
要回答问题的“将字符串转换为 url”部分(如果您想要正确的 URL,则不应手动转换字符串):
string url = "http://www.baseUrl.com/search?q=" + HttpUtility.UrlEncode("Hello I am");
您对每个参数调用 Url Encode 以正确编码值。
【讨论】: