文字コード判定

一度どこかに書いたような気もするけど、探せず書き直す羽目になった。ので、ここに書き置いとく。

require 'nkf'
puts NKF.constants.inject({}){ |table, code| table[NKF.const_get(code)] = code; table}[NKF.guess(ARGF.read || $stdin)]

殆どワンライナー

ARGFに連結されてるファイル其々の文字コードが違ってる場合どうなるか不明だけど、それは勘弁して欲しい。