A Day in the Life

Ruby 1.9 で起動オプションで外部エンコーディングを指定する

Ruby 1.9 で起動オプションで外部エンコーディングを指定する

1.9 をよく解ってないオールドタイプの secondlife ですこんばんは。Ruby 1.9 では外部エンコーディングの Encoding.default_external はロケール( $LANG )によて変化する。

$ echo $LANG
ja_JP.UTF-8
$ ruby -e "puts Encoding.default_external"
UTF-8
$ echo $LANG
C
$ ruby -e "puts Encoding.default_external"
US-ASCII

外部エンコーディングを考慮してない、かつ UTF-8 を扱うスクリプトだとエラーになったりする。そんなときは

ruby -EUTF-8 script

で起動オプションで指定してやると良い。gem ライブラリのような場合

ruby -EUTF-8 -S command

とすると path から探索してくれる便利!後ろの席の Ruby コミッターに教えていただきました。