Ruby 1.9.1 で日本語を表示する

Ruby 1.9系統で初の安定版リリースとなる、1.9.1 がリリースされました。以下、アナウンスのメールを引用します。

Yuguiです。

Ruby 1.9.1をリリースしました。これは1.9系統初の安定版リリースです。

Ruby 1.9Rubyの新しい系統です。近代的に、高速に、文法も明確に、多言語化
され、多くの改善がなされました。Ruby 1.8系統は2003年以来利用され、多くの
素晴らしい製品を生み出しました。本日、1.9の歴史が始まります。

手元のMacBookにインストールしてみました。では、次のコードを動かしてみましょう。

puts 'こんにちは'
$ ruby hello.rb
hello.rb:1: invalid multibyte char (US-ASCII)
hello.rb:1: invalid multibyte char (US-ASCII)
$

あれれ。おかしいですね。
1.9では次のようにします。

# -*- encoding: utf-8 -*-
puts 'こんにちは'

こうすると

$ ruby hello.rb
こんにちは
$

うまくいきました。

Ruby 1.9 の目玉のひとつが、きちんとした多言語対応です。RubyソースコードエンコーディングはデフォルトではUS-ASCIIとなっています。ですから、最初のプログラムでは日本語がうまく表示できなかったのです。

2つめのプログラムにある

# -*- encoding: utf-8 -*-

こうした行のことをマジックコメントと呼びます。マジックコメントで、ソースコードエンコーディングを指定するのです。ここでは、UTF-8が指定されています。

Rubyの多言語対応について詳しく知りたい方は、ぜひ以下の本をご覧ください。

初めてのRuby

初めてのRuby

目次や附録を含めて205ページと、とてもコンパクトな作りになっています。Rubyという言語について、ざっと押さえておきたいとき、とても有用な本です。また、Ruby 1.9 での変更点についてもきちんと書かれているので、そこだけ拾い読みしても便利だと思います。ただし、プログラミングの初心者の方にはちょっと敷居が高い本だと思いますので、その点ご注意ください。本書の「はじめに」に次のような記述があります。

本書は他言語プログラマのためのRubyの入門書です。