Ruby で全角英数字を半角英数字に変換する
全角英数字だけではなく、半角カタカナなど文字種の揺れを修正したい。
Moji モジュールを利用してみる。
サンプル
Windows XP 上で実行。文字コードを変換しているのは、コマンドプロンプトに実行結果を表示させるため。
コード sample.rb
$KCODE = 'u'; require 'moji' require 'nkf' string = 'ABCDEFG−!? kakikukeko あいうえおアカサタナ123456' str_1 = Moji.zen_to_han(string, Moji::ZEN_ALPHA) puts NKF.nkf('-s', str_1) str_2 = Moji.han_to_zen(str_1, Moji::HAN_KATA) puts NKF.nkf('-s', str_2) str_3 = Moji.zen_to_han(str_2, Moji::ZEN_ASYMBOL) puts NKF.nkf('-s', str_3) str_4 = Moji.zen_to_han(str_3, Moji::ZEN_NUMBER) puts NKF.nkf('-s', str_4)
実行結果。
C:\>ruby "test.rb"
ABCDEFG−!? kakikukeko あいうえおアカサタナ123456
ABCDEFG−!? kakikukeko あいうえおアカサタナ123456
ABCDEFG-!? kakikukeko あいうえおアカサタナ123456
ABCDEFG-!? kakikukeko あいうえおアカサタナ123456