半角文字を全角文字に変換する
UTF-8環境で半角文字を全角文字に変換するものを書いてみました。
module StringUtil def self.append_features(klass) super klass.class_eval do klass.extend ClassMethods end end module ClassMethods def han2zen(text, nonkana = true) require "jcode" # String#tr関数でカナを扱うために必要。 text = NKF.nkf('-XWw', text) # nonkanaがtrueなら半角の英数字記号および記号を全角に置き換える。 # ASCII文字コード表によるとこれらはすべて/!-~/という正規表現で # カバーできる。空白文字は一括して全角スペースで置き換え。 text = text.tr("!-~\s", "!-〜 ") if nonkana return text end end end
とりあえず、modelの下にstring_util.rbってなダサい名前で置いたのですが、
どうにも落ち着きません。