$stdout.set_encoding を使わずに、スクリプトの実行時に

ruby -EWindows-31J:UTF-8 ja.rb

としてもいい
本当はこっちのほうがいいんだけど、なんかこれがうまく動かないWindowsの環境があったはず