Mari23age
@Mari23age

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

http://www.google.com/search?q=●●●←ここに♯記号を認識させたい

Q&A

上記は、Googleの検索コマンド?なんですが、

$"http://www.google.com/search?q={●●●}"

ってやってるんですが、変数●●●に例えば{C#あいうえお}とすると、

シャープ記号以降が完全に無視されます。

どうすればいいでしょうか?

0

2Answer

Comments

  1. @Mari23age

    Questioner

    うわ!されます!でも、いちいち面倒です……。@←みたいにエスケープできないんでしょうか?

ちゃんとエスケープ用のメソッドがあります.

var uriToSearch = new UriBuilder("https://www.google.com/search");
uriToSearch.Query = $"q={Uri.EscapeDataString("あいうえお#かきくけこ")}";
// あとはuriToSearch.ToString()とか使えばよい

手作業エスケープは大変だし漏れがあると危ないので,こういうのはBuilderに頼ります.

0Like

Comments

  1. @Mari23age

    Questioner

    ありがとうございます!!!!!

  2. @Mari23age

    Questioner

    うまく検索できるようになりました!が、

    MessageBox.Show(uriToSearch.ToString());

    ってやると、♯記号が混じると文字化けするんですが、なんででしょうか?
    別に文字化けしててもいいんですけど、なんでだろうと思って。。。

  3. @Verclene さん

    Uri.EscapeDataString メソッドは半角空白をパーセントエンコーディング (%20) します。

    一方、Google ではどうだか不明ですが、普通はクエリ文字列は application/x-www-form-urlencoded 形式(半角空白は + になる)にします。

    なので、HttpUtility.UrlEncodeメソッドを使うのが良さそうです。

Your answer might help someone💌