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 "あいうえお"