1

次のように、引用符を含むURLをアプリケーションから起動する必要があります。

string TheURL = "http://www.google.com/search?hl=en&q=hello world \"" + "test with quotes\"";

したがって、これはGoogleで次の検索を行います。

helloworld「引用符でテスト」

Process.Startコマンドを使用して、ユーザーのデフォルトのWebブラウザーでこれを開きます。

System.Diagnostics.Process.Start(TheURL);

ただし、Firefoxがデフォルトのブラウザとして設定されている場合、このコマンドは何も実行できません。Chromeがデフォルトのブラウザである場合、このコマンドは3つの別々のタブを起動します。Process.Startコマンドに引用符を渡す方法を知っている人はいますか?

4

3 に答える 3

4

編集:コメント投稿者からの提案が適用されました!

使用するもの:http Uri.EscapeUriString//msdn.microsoft.com/en-us/library/system.uri.escapeuristring.aspx

string search = @"Bill & Ted's Excellent Adventure";
string ActualURL = "http://www.google.com/search?hl=en&q=" + Uri.EscapeDataString(search);
System.Diagnostics.Process.Start(ActualURL);

EDIT2:どうやら私のコードは壊れていました。アンパサンド文字を含む検索は許可されません。上記のコードを修正しました。通常のコードとアンパサンドを含むコードで機能するようになりました。

于 2012-08-17T17:26:14.720 に答える
3

個人的にはURIを使うのが好きです。これにより、エンコード/デコードの柔軟性が大幅に向上し、実質的に労力がかかりません。

        Uri myUri = new Uri("http://google.com/search?hl=en&q=\"hello world\"");
        System.Diagnostics.Process.Start(myUri.AbsoluteUri);
于 2012-08-17T17:37:29.930 に答える
2

これは単に有効なURLではなく、開いたり起動したりすることはできません。

を使用して、コンポーネントを構成する前にURLエンコードしますSystem.Web.HttpUtility.UrlEncode

参照: http: //msdn.microsoft.com/en-us/library/system.web.httputility.urlencode.aspx

于 2012-08-17T17:25:58.640 に答える