6

CentOS で ruby​​ スクリプトを実行しており、rvm (1.9.3) 経由で ruby​​ をインストールしています。

.bash_profile に NLS_LANG 変数を設定しました。

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

ただし、(oci8 ドライバーが行う) ruby​​ 経由でアクセスしようとすると、それを見つけることができません:

 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.

問題は、(いくつかの .sql ファイルを実行するために) ruby​​ スクリプトから sqlplus を実行していて、特殊文字がすべて台無しになっていることです。

ルビーに値を表示させるにはどうすればよいですか?

4

1 に答える 1

12

実行するすべてのアプリケーションで使用できるように変数をエクスポートする必要があります(関数でない場合)。

export NLS_LANG

または設定と一緒に:

export NLS_LANG=en_US.UTF-8

または、ほとんどのシステムLANGで利用できるはずです。

export NLS_LANG=$LANG
于 2012-05-11T21:43:30.603 に答える