rubyベストプラクティスchapter7.3

スクリプトのデフォルトのエンコーディングとそれを変更する方法

デフォルトのエンコーディングの決定方法

rubyのエンコーディングがどのように決められているか。

  1. ソースエンコーディングは基本マジックコメント。マジックコメントが無い時はUS-ASCII。
    1. ただし、ワンライナーの場合はOSのLANG環境変数から推測される。
  2. 外部エンコーディング(Encoding.default_external)はOSのLANG環境変数から推測される。
  3. 内部エンコーディング(Encoding.default_internal)はロケールのエンコーディングにしたがって推測される。
  4. ようするに指定がなければ外部、内部エンコーディングは起動されるOSによって変化する。

デフォルトのエンコーディングを変更する方法

  1. 通常はEncoding.default_externalとEncoding.default_internalを変更すればok。
  2. ワンライナーの場合は-Eオプションを使用して変更する
  3. 1.8系でおきまりの-Kオプションは1.9でも使用できる。またこれはソースエンコーデングも変更してしまう。

ここいらは「プログラミングruby」を見た方がいいのかなぁ。


Rubyベストプラクティス -プロフェッショナルによるコードとテクニック

Rubyベストプラクティス -プロフェッショナルによるコードとテクニック