質問

文字列をURLに変換したいのですが、スペースの代わりに、キーワード間の「+」が必要です。

例えば:

"Hello I am"

に:

"Hello+I+am"

どうすればいいですか?

役に立ちましたか?

解決

String input = "Hello I am";
string output = input.Replace(" ", "+");

他のヒント

URLについては、使用することを強くお勧めします server.urlencode (asp.netで)または uri.escapeuristring (他のどこでも)string.replaceの代わりに。

あなたが試すことができます string.replace

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

使用できます string.Replace:

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

文字列をエンコードする場合(スペースが世話されるだけではありません)、使用する場合は、使用してください Uri.EscapeUriString:

Uri.EscapeUriString("Hello I am");

MSDNから:

デフォルトでは、 EscapeUriString メソッドは、RFC 2396の予約されていない文字を除くすべての文字をそれらの16進表現に変換します。国際的なリソース識別子(IRIS)または国際化ドメイン名(IDN)の解析が有効になっている場合、EscaseUristringメソッドは、RFC 3986の予約されていない文字を除くすべての文字を16進表現に変換します。すべてのUnicode文字は、逃げる前にUTF-8形式に変換されます。

スペースのみをプラスに置き換えたいと仮定し、完全なURLエンコードを行わないと仮定すると、内蔵を使用できます Replace 方法:

string withSpaces = "Hello I am";

string withPluses = withSpaces.Replace(' ', '+');
string s = "Hello I am";
s = s.Replace(" ", "+");

質問の「文字列をURLに変換する」部分に答えるには(正しいURLが必要な場合は、文字列を手動で変換しないでください):

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

各パラメーターでURLエンコードを呼び出して、値を正しくエンコードします。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top