2013-04-11 6 views
22

में अमान्य बाइट अनुक्रम के साथ रेक कार्य विफल हो गए 1.9.3 रूबी के उन्नयन के बाद 1.9.3 मेरे ऐप्स में से एक ठीक काम कर रहा है लेकिन दूसरा जिसे मैं परिवर्तित करने की कोशिश कर रहा हूं, "संपत्ति: प्रीकंपाइल" चरण में विफल रहता है जब मैं कोशिश करता हूं capistrano के साथ तैनाती।यूएस-एएससीआईआई

rake aborted! 
    rake aborted! 
    invalid byte sequence in US-ASCII 
    /Users/george/.rvm/gems/[email protected]/gems/rake-10.0.4/lib/rake/trace_output.rb:16:in `block in trace_on' 
    /Users/george/.rvm/gems/[email protected]/gems/rake-10.0.4/lib/rake/trace_output.rb:14:in `map' 
    /Users/george/.rvm/gems/[email protected]/gems/rake-10.0.4/lib/rake/trace_output.rb:14:in `trace_on' 
    /Users/george/.rvm/gems/[email protected]/gems/rake-10.0.4/lib/rake/application.rb:328:in `trace' 
    /Users/george/.rvm/gems/[email protected]/gems/rake-10.0.4/lib/rake/application.rb:183:in `display_error_message' 
    /Users/george/.rvm/gems/[email protected]/gems/rake-10.0.4/lib/rake/application.rb:169:in `rescue in standard_exception_handling' 
    /Users/george/.rvm/gems/[email protected]/gems/rake-10.0.4/lib/rake/application.rb:159:in `standard_exception_handling' 
    /Users/george/.rvm/gems/[email protected]/gems/rake-10.0.4/lib/rake/application.rb:88:in `load_rakefile' 
    /Users/george/.rvm/gems/[email protected]/gems/rake-10.0.4/lib/rake/application.rb:72:in `block in run' 
    /Users/george/.rvm/gems/[email protected]/gems/rake-10.0.4/lib/rake/application.rb:160:in `standard_exception_handling' 
    /Users/george/.rvm/gems/ruby-1.9.3-[email protected]/gems/rake-10.0.4/lib/rake/application.rb:70:in `run' 
    /Users/george/.rvm/gems/[email protected]/bin/ruby_noexec_wrapper:14:in `eval' 
    /Users/george/.rvm/gems/[email protected]/bin/ruby_noexec_wrapper:14:in `<main>'  

मैं तमाम पद पढ़ लिया है और कई सुझाव की कोशिश की लेकिन कोई लाभ नहीं हुआ: यहाँ स्टैकट्रेस है। मैं अपने gemfile के शीर्ष पर निम्नलिखित जोड़ने की कोशिश की:

if RUBY_VERSION =~ /1.9/ 
    Encoding.default_external = Encoding::UTF_8 
    Encoding.default_internal = Encoding::UTF_8 
end 

लेकिन यह कोई फर्क नहीं बनाया है।

रूप

$ echo $LC_ALL 
en_NZ.UTF-8 

$ echo $LANG 
en_NZ.UTF-8 

मुझे डर है कि मैं वास्तव में सब पर संदेश को समझने न कर रहा हूँ और मुझे पता है फ़ाइल समस्या है जो की पहचान करने के लिए कैसे न इस प्रकार मैं लैंग और LC_ALL वातावरण चर की जाँच की।

मुझे चलाने के लिए कोई रेक कार्य नहीं मिल सकता है - यह वही त्रुटि देता है।

ध्यान दें कि मैं विकास मोड में एप्लिकेशन को पूरी तरह ठीक कर सकता हूं।

+0

परियोजना में फ़ाइलों के माध्यम से यादृच्छिक रूप से खोज करने के बाद। मैंने फैसला किया कि त्रुटि संदेश ने समस्या के लिए फ़ाइल नाम निर्दिष्ट नहीं किया है, तो संभवतः यह रेक के साथ कुछ करना था। डाटाबेस प्राइमिंग के लिए हार्ड कोड किए गए डेटा वाले रेक कार्य को हटाने से समस्या ठीक हो गई। – giorgio

उत्तर

30

अपने Rakefile की पहली पंक्ति

#encoding: utf-8 

जोड़े (या जो भी फाइल में अजीब कैरेक्टर हैं)

+1

लेकिन मुझे यह कैसे पता चलेगा कि कौन सी फाइल है? – giorgio

+0

धन्यवाद फॉटनस !!! इसके अलावा @giorgio फ़ाइल को 'रेकैकाइल' – Trip

+2

कहा जाता है कोई समस्या फ़ाइल Rakefile नहीं थी। यह आसान होता! यह मेरे रेक कार्यों में से एक था जिसमें समस्या थी। – giorgio

1

सुनिश्चित करें कि आप रोमाजी (जापानी) में अपनी फ़ाइल में टाइप नहीं कर रहे हैं। या कुछ अन्य गैर यूएस-एएससीआईआई भाषा के लिए अंग्रेजी चरित्र सेटिंग।

मैंने एक रेक डीबी चलाने की कोशिश की: बीज और एक ही त्रुटि हो रही थी। बाहर निकलता है मैं जापानी रोमन पात्रों में अपनी बीज फ़ाइल में टाइप कर रहा था। मैं अपनी परियोजना पर काम करने से पहले अपने कीबोर्ड इनपुट को वापस अमेरिका में बदलना भूल गया।

+0

फिर आपने इसे कैसे ठीक किया? –

+1

@ ब्रेनो सल्गाडो वह सबसे अधिक संभावना है कि वह अपनी फ़ाइल के शीर्ष में सही एन्कोडिंग जोड़ें, या उसके बीज फ़ाइल से वर्ण हटा दें। – fotanus

+0

@ ब्रेनो सल्गाडो हाँ मैंने रोमाजी में टाइप किए गए पात्रों को हटा दिया, वापस यूएस अंग्रेज़ी पर स्विच किया और इसे पुनः टाइप किया। – user2031423

5

एक समय में द्वारा गलती पर रेक फ़ाइल (ओं) को ट्रैक करें।

तहत lib/कार्य/delete_me.rake

फ़ाइलों यानी तब फिर से रेक या पुनः आरंभ जो कभी आप इस मुद्दे को दे रहा था। एक बार समस्या खत्म हो जाने के बाद git diff करें यह देखने के लिए कि कौन सी फ़ाइल अपराधी थी और आपके पसंदीदा संपादक के साथ फ़ाइल के एन्कोडिंग को बदल दिया गया था।

यानी,

vim lib/कार्य/delete_me.rake :। सेट fileencoding = UTF-8 : wq

तब फिर से रेक और आप सेवा में वापस आना चाहिए।

1

मुझे इसी तरह की समस्या थी और "त्रुटि" मेरे पहले नाम से थी: इसमें एक गैर यूएस-एएससीआईआईआई चार (ö) है, यह setup.rb में मुद्रित किया गया था और समस्याओं का कारण बन गया था। मैंने इसे "ओई" में बदल दिया और यह ठीक काम किया।

मैं bitnami के लिए एक ई-मेल भेजते हैं यह बताने के लिए कि यह किसी भी तरह

2

फर्स्ट रन

$ sudo gem install magic_encoding 

तब फ़ोल्डर में जाने के लिए और

$ magic_encoding 

तैयार चलाने बदल गया है!

+0

Welp मैंने ऐसा किया और यह काम नहीं किया .. –

+0

यह मेरे लिए काम है, धन्यवाद! – Vsevolod

0

मुझे किसी भी रेक कार्य को चलाने की कोशिश करते समय भी इसी तरह की त्रुटि मिल रही थी (मैं रुबी 1.9.3 के साथ रेल 3.2 का उपयोग करता हूं)। मैंने बिना किसी सफलता के उपरोक्त सभी समाधानों की कोशिश की। बाद में मुझे पता चला कि मैं एक विशिष्ट मणि था जो त्रुटि पैदा कर रहा था (मेरे मामले में यह फ़ेकर मणि था, जिसे कुछ दिन पहले अपडेट किया गया था)। मैंने मणि हटा दिया (यह उपयोग में नहीं था) और सब कुछ काम करना शुरू कर दिया! तो, मेरी सलाह है, यदि आप इस तरह के मुद्दे में भाग लेते हैं और यहां सूचीबद्ध समाधानों में से कोई भी काम नहीं करता है, तो प्रत्येक मणि के संस्करण की जांच करें और देखें कि उनमें से कोई भी अपडेट किया गया है या नहीं। उन्हें हटाने या एक संगत संस्करण सेट करने का प्रयास करें।