2011-09-30 6 views
14

Herokuでデフォルトのルビ文字列エンコーディングをUTF-8に変更する必要があります。何らかの理由でUS-ASCIIです。Herokuでデフォルトの文字列エンコーディングとしてUTF-8を設定する

 
$ irb 
ruby-1.9.2-p136 :001 > "a".encoding 
=> #<Encoding:UTF-8> 

両方ルビー1.9.2上で実行します。私はローカルで実行する場合、IRB

 
$ heroku console 
Ruby console for myapp.heroku.com 
>> "a".encoding 
=> #<Encoding:ASCII-8BIT> 

はしかし、私は別の結果を得ます。私もこれを設定しようとしましたが、動作しませんでした:

 
Encoding.default_internal = Encoding.default_external = "UTF-8" 

アイデア?

おかげで、 フェリペ

答えて

31

Herokuのサポートスタッフを1として、これは魔法の事である:

 
heroku config:add LANG=en_US.UTF-8 

heroku consoleあなたactuallアプリを使用して実行される、ASCII-8BITとして報告文字列のエンコーディングを維持しますが、 LANG config varに基づいて正しいエンコーディングを作成します。 これを確認することで、これを確認できます。

 
$ heroku run bash 
Running bash attached to terminal... up, run.2 
[email protected]:/app$ irb 
irb(main):001:0> "a".encoding 
=> #<Encoding:UTF-8> 
+0

ありがとうございます。これまでどこにもいなくて、すべてのエンコーディングを試してきました。 – theschmitzer

+0

このソリューションは、Heroku上で動作するGrailsアプリケーションでも機能します。 –

+1

ありがとう、私はついに寝ることができます! – Gavin

関連する問題