string_kana_extention.rb
class String
require 'nkf'
# NOTE require nkf 2.0.9 over
# convert from full(or half)-width katakana to hiragana.
def to_hiragana
# NOTE -w option is for utf8 output
NKF.nkf('-w --hiragana', self)
end
# convert from hiragana or half-width katakana to full-width katakana.
def to_katakana
NKF.nkf('-w --katakana', self)
end
# convert from hiragana or half-width katakana to half-width katakana.
def to_hw_katakana
# At first, convert to full-width katakana,
# and then convert to half-width hiragana.
NKF.nkf('-w -Z4', to_katakana)
end
end
それぞれの変換について、nkfを使って割と簡単にできました。さすがRubyです。
Stringクラスの拡張メソッドとしてまとめてみました。想定以外の文字列の場合は、そのまま出力されます(nkfの仕様に準拠)。また、出力はutf8になります。
後々Gemとかにもしていく予定。