文字列をURLに変換したいのですが、スペースの代わりに、キーワードの間に「+」が必要です。
例えば:
"Hello I am"
に:
"Hello+I+am"
これはどのようにすればよいですか?
文字列をURLに変換したいのですが、スペースの代わりに、キーワードの間に「+」が必要です。
例えば:
"Hello I am"
に:
"Hello+I+am"
これはどのようにすればよいですか?
URLについては、String.Replaceの代わりにServer.UrlEncode ( ASP.NET内)またはUri.EscapeUriString (その他すべて)を使用することを強くお勧めします。
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の予約されていない文字を除くすべての文字を、16進表現に変換します。International Resource Identifiers(IRI)またはInternationalized Domain Name(IDN)の解析が有効になっている場合、EscapeUriStringメソッドは、RFC 3986の予約されていない文字を除くすべての文字を、16進表現に変換します。すべてのUnicode文字は、エスケープされる前にUTF-8形式に変換されます。
String.Replaceを試すことができます
"Hello I am".Replace(' ','+');
スペースをプラスに置き換えるだけで、完全な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");
各パラメーターでUrlEncodeを呼び出して、値を正しくエンコードします。