post送信時に、サーバに渡す文字列が記号のみだとエラーになってしまいます。


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

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

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

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




URLパスのディレクトリの一部に記号が入るリクエストがあり得るなら、その方式をやめた方が良いと思います。このルーティングは `/api/001/002/`
といった識別を扱う為の物です。どの言語のルータでもそうですが、サーバ側でルーティングが解決される際、ファイルシステムや言語の識別子として扱える文字列でバインディングされるので、どうしても扱えない文字という物があります。  
記号が入り得るならば、クエリパラメータで実装すべきです。




URLパスのディレクトリの一部に記号が入るリクエストがあり得るなら、その方式をやめた方が良いと思います。このルーティングは `/api/001/002/`
といった識別を扱う為の物です。どの言語のルータでもそうですが、サーバ側でルーティングが解決される際、ファイルシステムや言語の識別子として扱える文字列でバインディングされるので、どうしても扱えない文字という物があります。  
記号が入り得るならば、クエリパラメータで実装すべきです。

