PHPでURLエンコードされた文字列をJavaでURLデコード出来なかった話

PHPで実装された外部の決済システムとの連携を行っている。
サイトリニューアルに伴いテンプレートを修正しているのだけど、新たに検索ボックスを追加することになった。

テンプレートはShift_JISと決められているので、Java側ではShift_JISエンコードされた文字が渡されると思い、

String decoded = URLDecoder.decode(keyword, "Shift_JIS");

のようなコードを書いたのだけど、どうもデコード出来ない。
検索ボックスに入力した「フルーツ」という文字が、「%83t%83%8B%81%5B%83c」とエンコードされている。ならJavaならどうエンコードされるのかと思って調べると「%83%74%83%8B%81%5B%83%63」となる。
どうやらphpのencodeurl関数だとこんなエンコードをするらしい。

しょうがないのでcommonのURLCodecのお世話になって解決。