php再勉強中

久しぶりにphpを始めました。
openID認証とかmixi認証とかやってたんですけど、すっかり忘れてます。
あ、でもc#の書き方に似ているので、「あれするのどういう命令だっけ?」って調べるだけで出来るようです。
ただどうしてもうまくいかないところが出てきました。
漢字の取り扱いです。
以前もこれでかなり悩んだのですが・・・そのときはテーブルのキーを渡すだけで、実際の漢字はurl上で見せなくしてごまかしましたw

今回はDBとか使わないので、2時間ぐらい悩んでます。

DLは下記のコードで出来るのですがfで渡ってきた
./にゃん/ほげほげ.zip
こんな感じのものです。

//ファイルダウンロード 漢字がうまく行かないので保留
function download_file()
{
  $fname = urldecode ( $_GET["f"] );
  header('Content-Type: application/octet-stream'); 
  header('Content-Disposition: attachment; filename="'.$fname.'"'); 
  header('Content-Length: '.filesize( $fname ));
  readfile( $fname ); 
}

リンクを作るとこはこんな感じ

  $filepath = rawurlencode ( $dirname . "/" . $file_name );
  print '<td><a href="?' . htmlentities("cmd=dl&f={$filepath}") . '">'.$file_name.'</a></td>';

まぁ、Aタグで直接DLさせれば問題ないので深くは悩んでないのですが、ノウハウとかあれば教えて下さい。