トップページ -> 情報工学,情報スキルの教材 -> Ruby プログラミング -> Ruby で半角カナを全角カナに,全角数字を半角数字に変換
[サイトマップへ]  

Ruby で半角カナを全角カナに,全角数字を半角数字に変換

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"

  # 「"@ A I U _ a "」は Shift_JIS にはなく,Shift_JIS を拡張した文字コードセットにある
  print "@ A I U _ a 浬n"
  print hankana_to_zenkana "@ A I U _ a 浬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 こんにちは @ A I U _ a  ‖ 〜 − ¢ £ ¬ 表 〒\n"
  print zensuji_to_han "12345 こんにちは @ A I U _ a  ‖ 〜 − ¢ £ ¬ 表 〒\n"
end

【実行結果の例】