के साथ रेल में रूबी रेगेक्स का अजीब व्यवहार गैर-मानक utf-8 वर्ण का उपयोग करते समय मुझे अपने सत्यापन रेगेक्स में से एक के साथ समस्या है। इसलिए, मैं कुछ प्रयोग चलाता हूं और ऐसा प्रतीत होता है कि रेल वातावरण या सादे रूबी के साथ रूबी रेगेक्स अलग व्यवहार करता है।utf8 char
मैं यहां एक चीनी स्ट्रिंग के साथ अपना एक्सपर्टमेंट पोस्ट करता हूं।
गहरे लाल रंग का "शुद्ध" में:
string = "運動會"
puts string[/\A[\w]*\z/]
=> match "運動會" - ok
रेल में:
# coding: utf-8
task :test => :environment do
string = "運動會"
puts string[/\A[\w]*\z/]
end
$ rake test
=> nothing - not ok
अगर मैं # coding: utf-8
छोड़ देते हैं, यह invalid multibyte char (US-ASCII)
साथ आता है। वैसे भी, इसके साथ भी, यह मेल नहीं खाता है।
- रेल 3.0.7
- रूबी 1.9.2 (:
बेशक, मैं सब कुछ (ruby_version, utf-8 में स्क्रिप्ट फ़ाइलें की एन्कोडिंग ..)
मैं उपयोग जाँच कर ली है रूबी-1.9.2-पी 180)
तो मेरा निष्कर्ष यह है कि रेलवे रेगेक्स व्यवहार के तरीके को बदलती है और मुझे इसे सामान्य रूबी में व्यवहार करने का कोई तरीका नहीं मिला।
वास्तव में ROR के साथ मदद नहीं कर सकता, लेकिन +1 एक अच्छा सवाल के लिए - यह स्पष्ट आप की कोशिश की है और अपना होमवर्क किया था। – Kobi
धन्यवाद, हाँ, मैं यूटीएफ -8 और रूबी 1.8/1.9 के बारे में महान लेख ढूंढ रहा हूं लेकिन इस मुद्दे से संबंधित कुछ भी नहीं। – Hartator
FWIW - आपका परीक्षण 1.8.7 में काम करता है - यह सुनिश्चित नहीं है कि यह आपके लिए एक विकल्प है या नहीं। – smathy