/ / रूबी चीनी चरित्र कठिनाइयों का विकल्प - रूबी-ऑन-रेल, रूबी, सबस्ट्रिंग, cjk

रूबी चीनी चरित्र सबस्ट्रिंग कठिनाइयों - रूबी-ऑन-रेल, रूबी, सबस्ट्रिंग, सीजेके

मेरी रेल साइट के लिए, उपयोगकर्ता के नाम के पहले 5 अक्षरों को प्रदर्शित करने के लिए केवल कुछ जगह के साथ कुछ UI है। तो मैं स्ट्रिंग को प्रदर्शित करने के लिए निम्नानुसार हूं:

@user.name[0..4]

यह काम करता है अगर नाम अंग्रेजी में है। लेकिन अगर @user.name इसमें चीनी (मल्टीबैट) अक्षर होते हैं, दो समस्याएं पैदा होती हैं। पहली समस्या यह है कि [0..4] केवल मुझे 2 अक्षर मिलते हैं, 5 नहीं। दूसरी समस्या यह है कि कभी-कभी आखिरी चरित्र आधे में कट जाता है और कचरा स्क्रीन पर दिखाई देता है।

मैं सोच रहा था कि क्या रूबी में प्रतिस्थापन-आईएनजी मल्टीबाइट पात्रों को संभालने के लिए कुछ अपेक्षाकृत साफ तरीका है?

उत्तर:

जवाब के लिए 3 № 1

यहाँ "रों रूबी 1.8 और मल्टीबाइट समर्थन के बारे में एक उत्कृष्ट लेख (या, बल्कि, इसकी कमी)।

इस आधार पर, आप कुछ करने की कोशिश कर सकते हैं:

# this should get you first 4 characters of the string:
your_chinese_string.scan(/./mu)[0,4].join