nkfを使ってひらがな、カタカナ(全角・半角)間の変換行う

  • 12
    いいね
  • 1
    コメント
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とかにもしていく予定。

References