Ruby 1.8.7, KCODEの値をKconvの文字コード定数に変換する
def kconv_encoding_id encoding_name case encoding_name when 'UTF8' Kconv::UTF8 when 'SJIS' Kconv::SJIS when 'EUC' Kconv::EUC when 'NONE' Kconv::NOCONV else raise "wtf: Unknown encoding name: #{encoding_name}" end end
$KCODE='u' require 'kconv' sjis_str=read_sjis puts Kconv.kconv(sjis_str,kconv_encoding_id($KCODE),Kconv::SJIS)
その後ruby-listでこんなのを発見したんだけど、結局Kconv.tokcodeは入らなかったようです。
[ruby-list:6539] Kconv::tokcode
文字コードを定数に変換するの、Kconv.const_getでいけるのかー、でも'NONE'と'NOCONV'の対応が取れてないからまあこれでいいや