Simpleエンジニア

システム開発の備忘録

ruby などで、UTF8の機種依存文字を半角・全角の文字に直す

2011年11月22日 13時04分44秒 | 日記

さっき書いたのは修正。

 

def utfcheck(str)

  strings = {

  [ 0x3300 ] => "アパート",

  [ 0x3301 ] => "アルファ",

  [ 0x3302 ] => "アンペア",

  [ 0x3303 ] => "アール",

  [ 0x3304 ] => "イニング",

  [ 0x3305 ] => "インチ",

  [ 0x3306 ] => "ウォン",

  [ 0x3307 ] => "エスクード",

  [ 0x3308 ] => "エーカー",

  [ 0x3309 ] => "オンス",

  [ 0x330A ] => "オーム",

  [ 0x330B ] => "カイリ",

  [ 0x330C ] => "カラット",

  [ 0x330D ] => "カロリー",

  [ 0x330E ] => "ガロン",

  [ 0x330F ] => "ガンマ",

  [ 0x3310 ] => "ギガ",

  [ 0x3311 ] => "ギニー",

  [ 0x3312 ] => "キュリー",

  [ 0x3313 ] => "ギルダー",

  [ 0x3314 ] => "キロ",

  [ 0x3315 ] => "キログラム",

  [ 0x3316 ] => "キロメートル",

  [ 0x3317 ] => "キロワット",

  [ 0x3318 ] => "グラム",

  [ 0x3319 ] => "グラムトン",

  [ 0x331A ] => "クルゼイロ",

  [ 0x331B ] => "クローネ",

  [ 0x331C ] => "ケース",

  [ 0x331D ] => "コルナ",

  [ 0x331E ] => "コーポ",

  [ 0x331F ] => "サイクル",

  [ 0x3320 ] => "サンチーム",

  [ 0x3321 ] => "シリング",

  [ 0x3322 ] => "センチ",

  [ 0x3323 ] => "セント",

  [ 0x3324 ] => "ダース",

  [ 0x3325 ] => "デシ",

  [ 0x3326 ] => "ドル",

  [ 0x3327 ] => "トン",

  [ 0x3328 ] => "ナノ",

  [ 0x3329 ] => "ノット",

  [ 0x332A ] => "ハイツ",

  [ 0x332B ] => "パーセント",

  [ 0x332C ] => "パーツ",

  [ 0x332D ] => "バーレル",

  [ 0x332E ] => "ピアストル",

  [ 0x332F ] => "ピクル",

  [ 0x3330 ] => "ピコ",

  [ 0x3331 ] => "ビル",

  [ 0x3332 ] => "ファラッド",

  [ 0x3333 ] => "フィート",

  [ 0x3334 ] => "ブッシェル",

  [ 0x3335 ] => "フラン",

  [ 0x3336 ] => "ヘクタール",

  [ 0x3337 ] => "ペソ",

  [ 0x3338 ] => "ペニヒ",

  [ 0x3339 ] => "ヘルツ",

  [ 0x333A ] => "ペンス",

  [ 0x333B ] => "ページ",

  [ 0x333C ] => "ベータ",

  [ 0x333D ] => "ポイント",

  [ 0x333E ] => "ボルト",

  [ 0x333F ] => "ホン",

  [ 0x3340 ] => "ポンド",

  [ 0x3341 ] => "ホール",

  [ 0x3342 ] => "ホーン",

  [ 0x3343 ] => "マイクロ",

  [ 0x3344 ] => "マイル",

  [ 0x3345 ] => "マッハ",

  [ 0x3346 ] => "マルク",

  [ 0x3347 ] => "マンション",

  [ 0x3348 ] => "ミクロン",

  [ 0x3349 ] => "ミリ",

  [ 0x334A ] => "ミリバール",

  [ 0x334B ] => "メガ",

  [ 0x334C ] => "メガトン",

  [ 0x334D ] => "メートル",

  [ 0x334E ] => "ヤード",

  [ 0x334F ] => "ヤール",

  [ 0x3350 ] => "ユアン",

  [ 0x3351 ] => "リットル",

  [ 0x3352 ] => "リラ",

  [ 0x3353 ] => "ルピー",

  [ 0x3354 ] => "ルーブル",

  [ 0x3355 ] => "レム",

  [ 0x3356 ] => "レントゲン",

  [ 0x3357 ] => "ワット",

  [ 0x3358 ] => "0点",

  [ 0x3359 ] => "1点",

  [ 0x335A ] => "2点",

  [ 0x335B ] => "3点",

  [ 0x335C ] => "4点",

  [ 0x335D ] => "5点",

  [ 0x335E ] => "6点",

  [ 0x335F ] => "7点",

  [ 0x3360 ] => "8点",

  [ 0x3361 ] => "9点",

  [ 0x3362 ] => "10点",

  [ 0x3363 ] => "11点",

  [ 0x3364 ] => "12点",

  [ 0x3365 ] => "13点",

  [ 0x3366 ] => "14点",

  [ 0x3367 ] => "15点",

  [ 0x3368 ] => "16点",

  [ 0x3369 ] => "17点",

  [ 0x336A ] => "18点",

  [ 0x336B ] => "19点",

  [ 0x336C ] => "20点",

  [ 0x336D ] => "21点",

  [ 0x336E ] => "22点",

  [ 0x336F ] => "23点",

  [ 0x3370 ] => "24点",

  [ 0x337B ] => "平成",

  [ 0x337C ] => "昭和",

  [ 0x337D ] => "大正",

  [ 0x337E ] => "明治",

  [ 0x337F ] => "株式会社",

  [ 0x33E0 ] => "1日",

  [ 0x33E1 ] => "2日",

  [ 0x33E2 ] => "3日",

  [ 0x33E3 ] => "4日",

  [ 0x33E4 ] => "5日",

  [ 0x33E5 ] => "6日",

  [ 0x33E6 ] => "7日",

  [ 0x33E7 ] => "8日",

  [ 0x33E8 ] => "9日",

  [ 0x33E9 ] => "10日",

  [ 0x33EA ] => "11日",

  [ 0x33EB ] => "12日",

  [ 0x33EC ] => "13日",

  [ 0x33ED ] => "14日",

  [ 0x33EE ] => "15日",

  [ 0x33EF ] => "16日",

  [ 0x33F0 ] => "17日",

  [ 0x33F1 ] => "18日",

  [ 0x33F2 ] => "19日",

  [ 0x33F3 ] => "20日",

  [ 0x33F4 ] => "21日",

  [ 0x33F5 ] => "22日",

  [ 0x33F6 ] => "23日",

  [ 0x33F7 ] => "24日",

  [ 0x33F8 ] => "25日",

  [ 0x33F9 ] => "26日",

  [ 0x33FA ] => "27日",

  [ 0x33FB ] => "28日",

  [ 0x33FC ] => "29日",

  [ 0x33FD ] => "30日",

  [ 0x33FE ] => "31日"

  }

  strings.each{ |k, v|

    str = str.gsub(k.pack( "U*" ), v )

  }

  return str

end