exportしたvCardのQUOTED PRINTABLEをデコードするRubyスクリプト

Android端末やらでアドレス帳をexportしたvCardファイルの中味が

N;CHARSET=SHIFT_JIS;ENCODING=QUOTED-PRINTABLE:=8E=A9=91=EE;;;;

となってて「読めねーYO!!」というのを、

N;CHARSET=SHIFT_JIS:自宅;;;;

とデコードするRubyスクリプト

IO.foreach(ARGV[0]) do |line|
  if line =~ /(^.+);ENCODING=QUOTED-PRINTABLE(.+)$/
    puts $1 + $2.unpack("M").to_s
  else
    print line
  end
end

つかいかた

> ruby conv.rb foo.vcf > bar.vcf