2012-05-11 10 views
5

नहीं देख सकता मैं CentOS पर एक रूबी स्क्रिप्ट चला रहा हूं, और आरवीएम (1.9.3) के माध्यम से रूबी स्थापित कर रहा हूं।रूबी NLS_LANG पर्यावरणीय चर

मैंने एनबीएस_एलएएनजी वैरिएबल को .bash_profile में सेट किया है।

[[email protected] stasis]$ echo $NLS_LANG 
en_US.UTF-8 
[[email protected] stasis]$ which ruby 
~/.rvm/rubies/ruby-1.9.3-p194/bin/ruby 

लेकिन जब गहरे लाल रंग का (जो oci8 ड्राइवर करता है) के माध्यम से इसे उपयोग करने की कोशिश कर रहा है, है न इसे पा सकते हैं:

1.9.3-p194 :001 > ENV['NLS_LANG'] 
=> nil 

अन्य वार्स तक पहुँचना काम करने के लिए लगता है:

1.9.3-p194 :004 > ENV['USER'] 
=> "app" 

मेरे स्क्रिप्ट निम्नलिखित दिखाता है: Warning: NLS_LANG is not set. fallback to US7ASCII.

बात यह है कि मैं रूबी स्क्रिप्ट से sqlplus चला रहा हूं (कुछ .sql फ़ाइलों को निष्पादित करने के लिए), और विशेष वर्ण सभी गड़बड़ कर रहे हैं।

मैं मूल्य देखने के लिए रूबी कैसे प्राप्त कर सकता हूं?

+0

क्या आप 'एनएलएस_एलएएनजी' खोलते हैं जब आप खोल में 'env' चलाते हैं? –

+0

यह प्रदर्शित नहीं हो रहा था। मैं चर .bash_profile में चर सेट कर रहा था, लेकिन इसे निर्यात नहीं कर रहा था। – robertrv

उत्तर

11

आप (जब तक कि वे कार्य हैं) को चलाने के लिए किसी भी एप्लिकेशन में उपलब्ध होने के लिए अपने चर निर्यात करने के लिए की जरूरत है:

export NLS_LANG 

या एक साथ सेटिंग के साथ:

export NLS_LANG=en_US.UTF-8 

या के रूप में सबसे प्रणालियों LANG चाहिए पर उपलब्ध रहें:

export NLS_LANG=$LANG 
+1

क्या LANG में वास्तव में प्रारूप है जिसमें ओरेकल NLS_LANG में अपेक्षा करता है? –

+9

धन्यवाद! बाहर निकलता है मैं चर निर्यात नहीं कर रहा था। 'en_US.UTF-8' हालांकि काम नहीं किया (oci8 ने कहा कि यह अमान्य था)। मैंने 'NLS_LANG = AMERICAN_AMERICA.UTF8' का उपयोग किया और oci8 ने इसके बारे में शिकायत नहीं की। – robertrv

+2

तो यह प्राचीन है, लेकिन कृपया याद रखें कि यूटीएफ 8 ओरेकल में यूटीएफ 8 नहीं है। आपको AL32UTF8 का उपयोग करने की आवश्यकता है। http://wonderingmisha.blogspot.jp/2011/10/utf8-vs-al32utf8.html – polm23

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