2015-05-15 28 views
3

我試圖從Ruby撞到Oracle並在第一行出現錯誤。 (我實際上是在做這個撬,但這可能並不重要。)修復RuntimeError:無效的NLS_LANG格式:AMERICAN

[1] pry(main)> require 'oci8' 
RuntimeError: Invalid NLS_LANG format: AMERICAN 

問題是怎麼回事,我該如何解決?

Googling the error message沒有發現任何有希望的東西。 (它現在變成了這個問題。)唯一的其他問題類似於這個在stackoverflow是處理一個不同的問題(即使用戶設置一個變量沒有任何價值的變量)和答案沒有爲我工作(建議的值也是無效的,並且$LANG未在我的環境中設置,因此將其設置爲無效。)

+0

哎呦......一個在身體原來是這樣,我再嘗試其他價值,而沒沒有修復它......我會更新標題以便與原始問題保持一致,而不是我第一次嘗試修復它 – iconoclast

回答

3

NLS_LANG的格式應爲<language>_<territory>.<characterset>

the doc

直沒有對應於您的實際使用情況的一個例子:

The NLS_LANG environment variable is set as a local environment variable for the shell on all UNIX-based platforms. For example, if the operating system locale setting is en_US.UTF-8, then the corresponding NLS_LANG environment variable should be set to AMERICAN_AMERICA.AL32UTF8.

請注意:AL32UTF8UTF8接受所有的超集(無連字符) Unicode字符。 UTF8僅支持Unicode 3.1及更早版本。我強烈建議使用AL32UTF8作爲默認的「UTF-8」字符集,除非您有非常特殊的需求。

在Oracle 12.1中,AL32UTF8支持Unicode高達6.1。一個優點是AL32UTF8已經Unicode的4.0引入了supplementary characters支持(距離U碼點+ 10000至U + 10FFFF)