半角、全角変換

半角←→全角変換,Unicode::Japanese に未公開機能が…

これはperlの話だけど、rubyならどうなのかと思って調べてみた。


Ruby リファレンスマニュアル - いわゆる全角文字と半角文字の変換を行うにはどうするのがよいですか?

Ruby では半角カナを完全にサポートしてないので、さきに perl のようにすっきりとまとまったのは無いみたい。

ただ、 nkf か jcode を使えばある程度は可能。

半角→全角
require 'jcode'
require 'nkf'

# カタカナ
puts NKF.nkf("-XSs", "アイウエオ") #=> アイウエオ
# アルファベット、数字
puts "ABCabc123".tr("A-Za-z0-9", "A-Za-z0-9") #=> ABCabc123
全角→半角
require 'jcode'

# アルファベット、数字
puts "ABCabc123".tr("A-Za-z0-9", "A-Za-z0-9") #=> ABCabc123

全角カナ→半角カナへ変換してくれるのは無いみたいだった。自分で実装するしかないのかも。