ruby1.9.1の文字化け

Windowsのrubyを1.8.7から1.9.1にあげてみた。するとこんな簡単なプログラムですら文字化けするようになった。

# -*- coding: utf-8 -*-
puts "あいうえお"

プログラムファイルはもちろんUTF-8で保存している。事実、次のようにしてもUTF-8と表示されるのであっているはずだ。

# -*- coding: utf-8 -*-
puts "あいうえお".encoding

ちなみにこうするとうまくいった。

# -*- coding: utf-8 -*-
puts "あいうえお".encode("Shift_JIS", "UTF-8")

うーむ。なんでShift_JIS?色々考えた挙句、理由が分かりました。
Windowsのコマンドプロンプトのプロパティを見ると、

 現在のコードページ:932 (ANSI/OEM - 日本語 Shift-JIS)

となっています。
あぁ、こいつのせいか。。
Googleで検索すると、コマンドプロンプトUTF-8を扱う方法が見つかるけど、やってみるもののイマイチきれいに表示されず。

僕の場合、事務作業を楽にする程度にしか使っていないので、素直にこうするのが賢明かな。これならうまくいきます。

# -*- coding: Shift_JIS -*-
puts "あいうえお"