POSTで受けた文字エンコーディングがわからん

POSTで値を渡したとき、$hogeとか自動で変数に割当てられる場合と$_POST['hoge']とかPOST変数から引っぱってきたときと、文字エンコーディングの状態が違うんですがどういうことですか。もう意味がわからん。手元の環境(PHP5)だと$_POST['hoge']の形式でなんかうまくいってるんで、全部これにしようかと思ってたら他の環境だと化けまくるらしい。もう全部"auto"でmb_convert_encodingするしかない。