Ruby を使って次のことを行う関数を定義します.
nkf の主要なオプション
【ソースコード】
#! ruby -Ks # coding: windows-31j require 'pp' require 'nkf' def hankana_to_zenkana(s) # 半角カナを全角カナに変換.nkf を使用 # 「Ss」はShift_JIS. # UTF-8 なら「Ww」に書き換えてください. # EUC-JP なら 「Ee」に書き換えてください. # nkf については http://www.ruby-lang.org/ja/man/html/nkf.html return NKF::nkf( '-SsXm0', s ) end def zensuji_to_han(s) # 全角数字を半角数字に変換.nkf を使用 return NKF::nkf( '-Ssxm0Z0', s ) end if __FILE__ == $0 # 半角カナを全角カナに変換 print "コンニチハ\n" print hankana_to_zenkana "コンニチハ\n" # 「"① ② I Ⅱ ㍉ ㌢ ㈱"」は Shift_JIS にはなく,Shift_JIS を拡張した文字コードセットにある print "① ② I Ⅱ ㍉ ㌢ ㈱\n" print hankana_to_zenkana "① ② I Ⅱ ㍉ ㌢ ㈱\n" # 「"‖ 〜 − ¢ £ ¬ " 」は Shift_JIS, EUC-JP, ISO-2022-JP では同じ文字コードなのに Windows-31J では違う文字コード print "‖ 〜 − ¢ £ ¬ \n" print hankana_to_zenkana "‖ 〜 − ¢ £ ¬ \n" # その他 print "表 〒\n" print hankana_to_zenkana "表 〒\n" # 全角数字を半角数字に変換 print "12345 こんにちは ① ② I Ⅱ ㍉ ㌢ ㈱ ‖ 〜 − ¢ £ ¬ 表 〒\n" print zensuji_to_han "12345 こんにちは ① ② I Ⅱ ㍉ ㌢ ㈱ ‖ 〜 − ¢ £ ¬ 表 〒\n" end
【実行結果の例】