2012-06-20 9 views
5

PHP में दोहरी चौड़ाई वाले वर्णों को एकल चौड़ाई में बदलने के लिए संभव है mb_convert_kana। वे इसे "जेन-काकू से हन-काकू में परिवर्तित करें" कहते हैं। उदाहरण के लिए, मैं एक स्ट्रिंग में कनवर्ट करने के लिए है:पूर्ण-चौड़ाई वाले जापानी पाठ को आधा चौड़ाई (जेन-काकू से हन-काकू) में परिवर्तित करें

dbl = "BOX" 

और मैं इस

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

जैसे कुछ विधि वहाँ रूबी में यह करने के लिए एक रास्ता है प्राप्त करना चाहते हैं?

उत्तर

0

hz_on_fly मणि एआर मॉडल में प्रतिस्थापन इंजेक्ट करता है, जो शायद आप नहीं चाहते हैं। unicode_japanese पर एक नज़र डालें। बस करें:

Unicode::Japanese.z2h("BOX") 
    # => "BOX" 

रूबी 1.9.2 (AFAIK अन्य नहीं हैं) के लिए परियोजना का मेरा कांटा अपडेट किया गया है। इसका इस्तेमाल करने के लिए, अपने Gemfile से जोड़ें:

gem 'unicode_japanese', 
    :git => 'git://github.com/jpgeek/unicode_japanese.git' 
0

ठीक है, यह बहुत नहीं है और यह केवल (अन्य पात्रों के साथ निपटने के लिए बढ़ाया जा सकता है) रोमाजी लिए काम करता है, लेकिन यह मेरे लिए काम किया:

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

converted = title.tr(japaneseReplacements, englishReplacements) 
# title is now "BOX" 
3

मैं रूबी के संयोजन का उपयोग NKF निर्मित और String#tr

require 'nkf' 
dbl = "BOX" 
dbl = NKF.nkf('-X -w', dbl).tr('0-9a-zA-Z', '0-9a-zA-Z') 

यह पूरा करने के लिए आधे-चौड़े काटाकना transposing के अतिरिक्त लाभ है साथ ही कटकाना भी।

0

मुझे लगता है कि Moji मणि (Japanese documentation) अच्छी तरह से, इस के लिए अनुकूल के साथ-साथ सामान्य रूप में एक बहुत ही उपयोगी जापानी भाषा मणि जा रहा होगा (रूबी 1.8 और 1.9 के साथ काम करता है):

require 'moji' 

dbl = Moji.zen_to_han("BOX") 
# => "BOX" 
संबंधित मुद्दे