6

PHP では、関数を使用して、全角文字を半角文字に変換できますmb_convert_kana。彼らはそれを「全角を半角に変換する」と呼んでいます。たとえば、変換する文字列があります。

dbl = "BOX"

そして、私はこのような方法を見つけたいと思っています

dbl = "BOX".convert_to_half_width # dbl is now "BOX"

Rubyでこれを行う方法はありますか?

4

4 に答える 4

7

RubyビルトインNKFString#tr

require 'nkf'
dbl = "BOXカタカナ"
dbl = NKF.nkf('-X -w', dbl).tr('0-9a-zA-Z', '0-9a-zA-Z')
# dbl now is "BOXカタカナ"

これには、半角カタカナを全角カタカナに変換するという追加の利点もあります。

于 2013-05-26T00:58:16.273 に答える
2

まあ、それはきれいではなく、ローマ字でのみ機能します(他の文字を処理するように拡張できます)が、私にとっては機能しました:

title = "BOX"
englishReplacements = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890"
japaneseReplacements = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890"

converted = title.tr(japaneseReplacements, englishReplacements) 
# title is now "BOX"
于 2012-06-20T16:02:10.297 に答える
0

そのための宝石があります: hz_on_fly

于 2012-06-20T16:00:28.310 に答える
0

Moji gem (日本語のドキュメント) はこれに適していると思います。また、一般的に非常に便利な日本語の gem (Ruby 1.8 および 1.9 で動作) であると思います。

require 'moji'

dbl = Moji.zen_to_han("BOX")
# => "BOX"
于 2013-05-26T02:03:58.373 に答える