IronRubyの日本語処理

IronRubyは基本的にRuby 1.9.2との互換性をほぼ持っているので、Ruby 1.9の仕様通り何も指定しなければスクリプトはUS-ASCIIで書かれていて、処理する文字列もUS-ASCIIだと認識して処理します。

従って、Windowsのコマンドプロンプト上で日本語の文字列を使用するにはir.exeの起動時に-KsオプションをつけてShift-JISと強制するか、スクリプトの1行目”coding: shift-jis”というようにMagic Commentで文字エンコードを(スクリプトエンコードを)指定しないとうまくいきません。

【参考】Rubyリファレンスマニュアル 多言語化:
http://doc.ruby-lang.org/ja/1.9.2/doc/spec=2fm17n.html

また、付属するようになったVisual Studio 2010のプロジェクトで正しく日本語文字列を扱いたい場合にもMagic Commentで文字エンコードを指定していしないとIronRubyがExceptionを出したり文字化けしたりします。

# coding: shift-jis
puts "日本語"

まとめると悪いことはいわないからMagic Commentは書いておけと。

コメントを残す