PHP では、関数を使用して、全角文字を半角文字に変換できますmb_convert_kana
。彼らはそれを「全角を半角に変換する」と呼んでいます。たとえば、変換する文字列があります。
dbl = "BOX"
そして、私はこのような方法を見つけたいと思っています
dbl = "BOX".convert_to_half_width # dbl is now "BOX"
Rubyでこれを行う方法はありますか?
RubyビルトインNKF
とString#tr
require 'nkf'
dbl = "BOXカタカナ"
dbl = NKF.nkf('-X -w', dbl).tr('0-9a-zA-Z', '0-9a-zA-Z')
# dbl now is "BOXカタカナ"
これには、半角カタカナを全角カタカナに変換するという追加の利点もあります。
まあ、それはきれいではなく、ローマ字でのみ機能します(他の文字を処理するように拡張できます)が、私にとっては機能しました:
title = "BOX"
englishReplacements = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890"
japaneseReplacements = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890"
converted = title.tr(japaneseReplacements, englishReplacements)
# title is now "BOX"
そのための宝石があります: hz_on_fly
Moji gem (日本語のドキュメント) はこれに適していると思います。また、一般的に非常に便利な日本語の gem (Ruby 1.8 および 1.9 で動作) であると思います。
require 'moji'
dbl = Moji.zen_to_han("BOX")
# => "BOX"