2010-07-07 17 views
15

मेरे सेटअप है:अवैध बाइट क्रम (रूबी 1.9 + रेल 2.3.8 + MongoDB + mongo_mapper)

linux + रूबी 1.9 + रेल 2.3.8 + MongoDB + mongo_mapper

मैं पीछा किया http://railscasts.com/episodes/194-mongodb-and-mongomapper, कि सब कुछ ठीक है। मैं अंग्रेजी तारों को सफलतापूर्वक सम्मिलित कर सकता हूं, लेकिन जब मैं कुछ चीनी तार डालता हूं, तो इसे डाला जाता है, लेकिन प्रदर्शित नहीं किया जा सकता है।

वेब पेज एक अपवाद पता चलता है:

invalid byte sequence in US-ASCII 

मैं mongo आदेश का उपयोग MongoDB में डेटा देखने के लिए, और यह सही है। लेकिन मुझे नहीं पता कि रेल उन्हें क्यों प्रदर्शित नहीं कर सकते हैं। पहले से

धन्यवाद

उत्तर

20

कृपया अपने environment.rb में निम्नलिखित पंक्तियाँ जोड़ें।

Encoding.default_external = Encoding::UTF_8 
Encoding.default_internal = Encoding::UTF_8 

समस्या हल हो जाएगी।

+0

इन लाइनों * अंदर * कॉन्फ़िगर ब्लॉक को जोड़ना सुनिश्चित करें। –

5

मुझे यह रैक एप्लिकेशन के साथ त्रुटि मिली थी।

config.ru को

Encoding.default_external = Encoding::UTF_8 

    Encoding.default_internal = Encoding::UTF_8 

जोड़ा जा रहा है मेरे लिए यह संकल्प लिया।

18

आप अपने ~/.profile, ~/.bash_profile या इसी तरह करने के लिए इस

export LC_ALL="en_US.UTF-8" 

लेखन इस त्रुटि को ठीक कर सकते हैं। यह एक सम्मोहन की तरह काम करता है।

+0

धन्यवाद !!मैं इस जेकिल एप्लिकेशन को घंटों तक चलाने के लिए हरोकू से लड़ रहा हूं। मैंने इसे 'हेकोकू कॉन्फ़िगरेशन' के साथ हल किया: LC_ALL = "en_US.UTF-8" ' – blockloop

+0

यह जेकिल के साथ एम्बेड कमांड लाइन से ग्रंट का उपयोग करते समय वेबस्टॉर्म 7 में भी एक समस्या हल करता है। –

0

अपने ओएस की locale सेटिंग्स की जांच करें। आपको en_US सेट अप करने की आवश्यकता है .UTF-8` लोकेल पर्यावरण परिवर्तनीय अन्यथा आपको इस समस्या का सामना करना पड़ सकता है।

यदि आप ऑपरेटिंग सिस्टम Ubuntu है तो आप निम्न आदेश टाइप करके अपना locale देख सकते हैं।

sudo locale 

और फिर आप निम्न आदेश

sudo locale-gen en_US.UTF-8 

टाइपिंग यह आप मदद कर सकते हैं द्वारा अपने स्थान को फिर से कॉन्फ़िगर कर सकते हैं। धन्यवाद।

1
cd $HOME 
vi .bashrc 

ऐड स्थान नीचे conf:

export LANG="en_US.UTF-8" 
export LC_ALL="en_US.UTF-8" 
export LC_CTYPE=en_US.UTF-8 

बचाने के लिए और चलाएँ: स्रोत ~/.bashrc

सब कुछ ठीक ~

0

मेरे लिए है समस्या यह है कि मैं का उपयोग कर रहा था रूबी का एक पुराना संस्करण। rvm use 2.0 चाल थी।

संबंधित मुद्दे