まとめ
環境変数RUBYOPT=-Eutf-8:utf-8
しましょう。
ついでにLANG=ja_JP.UTF-8
しましょう。
なぜ(私にとって)必要か
おそらくLinuxでLANG=ja_JP.UTF-8してあれば上記設定はいらないと思います。
私はWindowsでもShift_JISを使わないことに決めたので、単純に全面的にUTF-8で入出力してほしいです。
Windowsだと出力はShift_JIS(Windows-31J)、入力はnil(ASCII-8BIT)になっていて、時々force_encodingしたりencodeしたりが必要なので、めんどくさくなったので設定しました。
Net::SSHでLinuxホストから多バイトを受け取る場合なども問題が少なくなると思います。
問題点
cmd.exeで実行すると文字化けしそうです。ターミナルエミュレータを入れていれば多分問題無いと思います。
コンソールでgetsで入力待ちになるようなコマンドで日本語入力すると問題が出そうです。ターミナルエミュレータで入力も変換してくれていれば大丈夫だと思いますが、特に検証していません。
そういうものがあるか知りませんが、Encoding基準でなくシステム名でデフォルト文字コードを判定している場合は問題になるかも。