Ruby Tips!

RubyのTipsを紹介します

nkfライブラリによる文字コードの推測

Rubyで日本語の文字列の文字コードを推測するには、nkfライブラリを使うと良い。
nkfライブラリで文字コードを推測するには以下のようにする。

require 'nkf'
NKF.guess("にほんご")

NKF.guessの返却値はRubyのバージョンにより異なる。
Ruby 1.8では、NKF::UTF8のようなエンコードを表す定数を返す。
Ruby 1.9では、Encodingオブジェクトを返す。

Ruby 1.8では、文字コードの名前を取得する方法はない。定数から自分で変換してやる必要がある。
Ruby 1.9では、文字コードの名前を取得するのに、Encoding#nameが利用できる。

require 'nkf'
encode = NKF.guess("にほんご")
encode.name #=> "UTF-8"