ふだんはRuby on Railsで開発をしているけれど、ruby単体で使うことって
あまりしていなかった。ちょっとした文字列置換は秀丸なんかでやっていたし。
でも今日はちょっとまとまった量のテキストを、数十種類の置換ルールにかける作業を
したくなって、昔UNIX環境で使いまくったawkやsedでやろうかと思ったけれど、
windows環境で(いちおうcygwinのawkはあったけど)もろもろ思い出しながら
できるか調べながらやるのも手間だし、どのみちちょっとコストかけるなら
rubyでやろうとトライ。
ふだんはRailsのconfig/enviroment.rbに$KCODE = "UTF8"を指定していたから、
あとは文字コードのことは考えてなかった。
rubyのスクリプトファイルを書いてコマンドラインから呼び出す場合、
スクリプトファイル内に日本語文字列(マルチバイトコード)があると、
その同じファイルの先頭にKCODE指定をしても無効(というかそれでは遅い)。
以下のようにコマンドラインで指定をするのが正しいのだった。
ruby -Ku xxxx.rb
さすがに文字列処理の得意なrubyだけあってスクリプト書くのには
便利なクラスメソッドがあって苦労しなかったんだけど、
コマンドラインでrubyだけ使うときに文字コード指定どうするんだっけと
調べるのに以外と手間どったので、ちょっとメモ。