2012-01-24 6 views
2

私のOracle RoRコンビネーションでエンコーディングを取得できないようです。 Oracleデータベース内の情報が正しくエンコードされているようです。特殊なエンコーディングを必要とするSQLを介して属性を検索すると、私が期待しているような 'Straße'が得られます。私のRoRアプリケーションから同じ属性を要求すると、明らかに間違っている「Stra?e」が表示されます。 Oracleサーバー上のRuby on Rails Oracleエンコーディング

  • ENVでNLS_LANGさ= AMERICAN_AMERICA.AL32UTF8
  • 私のRoRのアプリ= AL16UTF16

のOracleのdBASEの= utf8

  • NLS_NCHAR_CHARACTERSETでdatabase.ymlの中のエンコード私は上記のパラメータを変更していくつかの異なることを試みましたが、何も働かなかった。

    誰でも良いアイデアはありますか?

  • +0

    どのドライバをお使いですか? Oracle拡張? –

    +0

    マーク、そうです。私は、NLS_LANG = "AMERICAN_AMERICA.UTF8"を私の開発マシンの環境に追加することで問題が解決されたことを知りました。私の製作機械では同じことを試みましたが、運はありませんでした。私もAddDefaultCharset UTF-8をhtaccessに追加しましたが、それも解決しませんでした。どんな助けもありがとうございます。 – Rutger

    +0

    devとproductionでRubyのバージョンが異なっていますか? –

    答えて

    0

    働いていた物事は私の神託が宝石

    4

    ...\config\boot.rbENV['NLS_LANG'] ||= 'AMERICAN_AMERICA.UTF8'を追加し、それはすべての環境で動作します高めるためにダウングレードすることでした。私はウェブ上で見つけることができるソリューションの

    2

    どれも働いたが、パッティング、ルビー-oci8の宝石のソースを読んだ後:config\boot.rb

    ENV['NLS_LANG'] = 'AMERICAN_AMERICA.AL32UTF8' DEFAULT_OCI8_ENCODING = 'utf-8'

    が私のために働きました。

    +0

    最後に、この回答をいただきありがとうございます! –