現在の動作が文字コードがげんいんという思い込みから離れて考えてみてはどうでしょうか。
ちゃんと動作を検証しましたか??