open-uriのテスト

普通に何も考えずに使ってみたら文字化けしたので、
NKF使ってShift_JISに変換してから出力させたらうまくいった。

require "open-uri"
require "nkf"

url = ARGV[0] || "http://d.hatena.ne.jp/gan2/"
opt = "-s -xm0"

open(url){|f|
  print NKF.nkf(opt, f.read)
}

opt(オプション)についての解説をちらっと。
「-s」で変換する文字コードShift_JISに指定している。
「-e」ならEUC。「-j」ならJIS。「-w」ならUTF-8という具合。


「-xm0」はちょっとややこしくて、これは「-x」と「-m0」をまとめて書いたものだ。
「-x」は半角カナを全角カナに変換しないようにするためのオプション。
「-m0」はMIMEの処理を抑制するためのオプション。
厄介なことに、デフォルトではこれらがオンになっているので、
単に文字コードの変換にNKFライブラリを使うときは、
「-xm0」を付けるのが望ましいらしい。


オプションの説明をするのに「-」を文頭に置いたら、
全部リスト記法だと取られてまいった。あちゃー。