2011-04-24 12 views
6

मैं रेल पर रूबी और रूबी के लिए काफी नया हूं।मैं रेल की संख्या पर रूबी में जीबीपी पाउंड स्टर्लिंग प्रतीक का उपयोग कैसे कर सकता हूं?

एक छोटे से भोजन खोजने के आवेदन के लिए रूबी गाइड का पालन करते समय, लेखक ने रूबी ऑन रेल्स से मुद्रा विधि का उपयोग किया। समस्या यह है कि डिफ़ॉल्ट इकाई $ है, लेकिन मैं इसे £ में बदलना चाहता हूं।

जब मैंने इसे किया तो कोड को चलाने का प्रयास करने के बाद मैंने इसे निम्न त्रुटि वापस दे दी।

number_helper.rb:7 invalid multibyte char (US-ASCII) (SyntaxError) 

उत्तर

18

अपनी फ़ाइल की पहली पंक्ति में निम्नलिखित रखो जहां £ है।

#coding: utf-8 

डिफ़ॉल्ट रूप से, गहरे लाल रंग का एक-बाइट वर्ण, जो US-ASCII characters हैं पढ़ सकते हैं। £ चरित्र यूएस-एएससीआईआई कोड के भीतर फिट नहीं है, और उपरोक्त जादू टिप्पणी रूबी को यूटीएफ -8 कोड के रूप में फ़ाइल पढ़ने देती है, जो मानक बन रही है, और £ सहित बहु-बाइट वर्णों को संभालने में सक्षम है (सुझाव के बाद जोड़ा गया टिन मैन द्वारा)।

संपादित रूबी 2.0 के साथ इस महीने के प्रकाशित होने के लिए, डिफ़ॉल्ट एन्कोडिंग UTF-8 होना होगा, ताकि आप यह अब और नहीं की जरूरत नहीं होगी।

+4

पूर्णता के लिए, आप शायद यह बताना चाहते हैं कि यह महत्वपूर्ण क्यों है। अतिरिक्त जानकारी एक बेहतर जवाब देगा। –

+0

बहुत अच्छा जवाब, मुझे लगता है कि अब, 2018, वास्तव में utf8 समर्थित है और आपको उस पंक्ति की आवश्यकता नहीं है, जैसा कि आप कहते हैं .. लेकिन मैं यह भी ध्यान दूंगा कि ओपी को एक ही त्रुटि मिलती है, अगर फ़ाइल 885 9 -1 के साथ एन्कोड किया गया है और इसमें £ जैसे प्रतीक हैं। उदाहरण के लिए नोटपैड, और कई टेक्स्ट एडिटर्स, ansi या 8859-1 के लिए डिफ़ॉल्ट और utf-8 में बदलने की आवश्यकता है। £ 85 के लिए हेक्स 885 9 -1 या यूटीएफ -8 http://www.fileformat.info/info/unicode/char/00A3/index.htm पर निर्भर करता है और कोई xxd कमांड के साथ देख सकता है कि यह कैसे एन्कोड किया गया है। और फाइल कमांड कैसे फ़ाइल एन्कोड किया गया है। – barlop