現在の処理内容は、「http~/aaa/bbb/検索文字列」という形で、javascriptからC#サーバにpost送信を行います。サーバでは、検索文字列を使ってDBに検索を掛けます。

上記の処理において、検索文字列の部分を?などの記号のみで送信すると、「Failed to load resource: the server responded with a status」というようなエラーになります。
-追記
検索文字列内に%などの記号が含まれている場合でも上記エラーが発生します

この問題を回避するために、javascript側で検索文字列のエンコードを行い、サーバ側で取得した検索文字列をデコードする方法をとろうと考えたのですが、記号をエンコード出来るエンコード方式が見当たらず解決に至りませんでした。

この問題の解決方法が分る方がいましたら、ご教授お願いします。