4

我想将字符串转换为 url,而不是空格,它需要关键字之间的“+”。

例如:

"Hello I am"

至:

"Hello+I+am"

我该怎么做?

4

7 回答 7

11

对于 URL,我强烈建议使用Server.UrlEncode(在 ASP.NET 中)或Uri.EscapeUriString(在其他任何地方)而不是 String.Replace。

于 2010-11-15T09:49:45.733 回答
5
String input = "Hello I am";
string output = input.Replace(" ", "+");
于 2010-11-15T09:48:46.973 回答
3

您可以使用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 格式。

于 2010-11-15T09:47:48.820 回答
3

你可以试试String.Replace

"Hello I am".Replace(' ','+');

于 2010-11-15T09:47:49.280 回答
2

假设您只想用加号替换空格,而不是进行完整的 URL 编码,那么您可以使用内置Replace方法:

string withSpaces = "Hello I am";

string withPluses = withSpaces.Replace(' ', '+');
于 2010-11-15T09:47:42.593 回答
0

要回答问题的“将字符串转换为 url”部分(如果您想要正确的 URL,则不应手动转换字符串):

string url = "http://www.baseUrl.com/search?q=" + HttpUtility.UrlEncode("Hello I am");

您对每个参数调用 Url Encode 以正确编码值。

于 2010-11-15T09:51:39.970 回答
0
string s = "Hello I am";
s = s.Replace(" ", "+");
于 2010-11-15T09:47:50.823 回答