rubyで日本語を使えなくて、ちょっとハマった。

rubycgiを書いてて、htmlを出力する部分に日本語を書いてたんだけど、そこが怒濤の勢いで怒られた。

ちょっと調べてみたら、rubyの実行を以下のようにすることで解決した。UTF-8で記述していたので。

#!/usr/bin/ruby -Ku


rubyはデフォルトでは漢字を処理しないことにしているみたいです。

 -Kc

Rubyの処理する漢字コードを指定します。 Rubyは指定された文字が `E'または`e'の場合は文字列やアクセスするファイルの内容のコードが
EUCであると仮定します。同様に`S'または`s'の場合は SJIS、'U'または'u'の場合はUTF-8として処理します。 `N'は漢字を処理しません。
デフォルトはN(NONE)です。

このオプションは将来文字コードの取扱いが変更された場合等には変更される可能性があります。
プログラミング言語 Ruby リファレンスマニュアル