在PHP中有可能全角字符轉換爲單一寬度與功能mb_convert_kana
。他們稱之爲「把禪師轉化爲韓流」。例如,我有一個字符串轉換:將全角日文文字爲半角(禪閣漢閣)
dbl = "BOX"
,我想找到一些這樣
dbl = "BOX".convert_to_half_width # dbl is now "BOX"
方法有沒有辦法在Ruby中做到這一點?
在PHP中有可能全角字符轉換爲單一寬度與功能mb_convert_kana
。他們稱之爲「把禪師轉化爲韓流」。例如,我有一個字符串轉換:將全角日文文字爲半角(禪閣漢閣)
dbl = "BOX"
,我想找到一些這樣
dbl = "BOX".convert_to_half_width # dbl is now "BOX"
方法有沒有辦法在Ruby中做到這一點?
hz_on_fly寶石注入AR模型的替代品,這可能不是你想要的。看看unicode_japanese。只要這樣做:
Unicode::Japanese.z2h("BOX")
# => "BOX"
我的項目的叉子更新爲Ruby 1.9.2(AFAIK其他人都沒有)。要使用它,將它添加到您的Gemfile:
gem 'unicode_japanese',
:git => 'git://github.com/jpgeek/unicode_japanese.git'
有針對創業板:hz_on_fly
嗯,這是不是漂亮,它僅適用於羅馬字(可以擴展到處理其它字符),但它的工作對我來說:
title = "BOX"
englishReplacements = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890"
japaneseReplacements = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890"
converted = title.tr(japaneseReplacements, englishReplacements)
# title is now "BOX"
我使用了Ruby的組合內置NKF
和String#tr
require 'nkf'
dbl = "BOX"
dbl = NKF.nkf('-X -w', dbl).tr('0-9a-zA-Z', '0-9a-zA-Z')
這有半角片假名調換到全的好處也有片假名。
我認爲Moji寶石(Japanese documentation)將是非常適合這一點,因爲福祉一般一個非常有用的日語寶石(使用Ruby 1.8和1.9的作品):
require 'moji'
dbl = Moji.zen_to_han("BOX")
# => "BOX"