半角 全角の変換関数を作る

INDEX PAGE

半角 全角の変換関数を作る


INDEX PAGE

Rubyはやはり文字列の扱いがとっても便利だなぁと感心します。
今回全角文字を半角文字へ、半角文字を全角文字へという処理を作ったのですが
いとも簡単にできてしまいました。

require 'jcode'

##アルファベットを全角から半角へ
str = str.tr( 'A-Z','A-Z' ).tr( 'a-z','a-z' )

##数字を全角から半角へ
str = str.tr( '0-9','0-9' ).tr( '.','.' )

jcodeを利用するのが味噌のようで
これさえ利用しておけば日本語でもしっかり処理してくれます。


という感じでできてしまいました。
しかし、カタカナは少し苦労しました。

が、下のサイトが参考になりました。
http://www.moodindigo.org/blog/archives/000278.html

キモになるのは、濁点・半濁点のカタカナで
全角だと「ダ」と表現しますが、半角だと「ダ」と「タ」「゙」の二文字で表現します。
ここの変換さえしっかりやれば変換処理自体は普通の置換処理です。

半角から全角についても、処理順番さえ間違わなければ問題なしです。


INDEX PAGE