2008-12-03 テキストの文字数をカウントするスクリプトの1.8と1.9の比較 Ruby 1.8の場合 % cat /tmp/test.txt|ruby -Ku -e 'p STDIN.read.split(//).size' 92 1.8の場合は日本語を含む場合は-Kuなどとして、 エンコーディングを指定して、 文字数をカウントする場合はsplit(//)とやって正規表現を使って カウントするというバッドノウハウが必要 1.9の場合 % cat /tmp/test.txt|ruby19 -e 'p STDIN.read.size' 92 1.9の場合は環境変数LANGを見て、自動的にエンコーディングがセットされるので test.txtとLANGのエンコーディングが同じ場合は省略。 readした時はこのエンコーディングがセットされる。 String#sizeではバイト数ではなく、文字数が出てくる。