Ruby の nkf で、全角カナ文字を半角カナ文字にして出力する

以下のように nkf を利用すれば全角カナ文字を半角カナ文字に変換できます。

require "nkf"

# -w オプションは UTF-8 で出力する
# -Z4 オプションは全角カナを半角カナに変換する
NKF.nkf("-w -Z4", "アナスタシア")
# => "アナスタシア"
NKF.nkf("-w -Z4", "ミルキィホームズ")
# => "ミルキィホームズ"

注意

上記の -Z4 オプションでは半角カナ文字を渡した場合に全角カナ文字に変換されてしまいます。

NKF.nkf("-w -Z4", "アナスタシア")
# => "アナスタシア"

この問題を防ぎたい場合は -x オプションを追加するとよいみたい。

NKF.nkf("-w -x -Z4", "アナスタシア")
# => "アナスタシア"

参照