Set UTF-8 as default string encoding in Heroku
I need to change the default ruby string encoding to UTF-8 in Heroku. For some reason it is US-ASCII.
$ heroku console Ruby console for myapp.heroku.com >> "a".encoding => #<Encoding:ASCII-8BIT>
However, if I run irb l开发者_如何学JAVAocally I get a different result:
$ irb ruby-1.9.2-p136 :001 > "a".encoding => #<Encoding:UTF-8>
Both run on ruby 1.9.2. I've tried setting this as well, but didn't work:
Encoding.default_internal = Encoding.default_external = "UTF-8"
Ideas?
Thanks, Felipe
As per the Heroku support staff, this is the magic thing:
heroku config:add LANG=en_US.UTF-8
Although heroku console
will keep reporting strings encoding as ASCII-8BIT
, your actuall app will be running with the correct encoding, based on the LANG
config var.
You can double check that by doing this:
$ heroku run bash Running bash attached to terminal... up, run.2 u20415@022e95bf-3ab6-4291-97b1-741f95e7fbda:/app$ irb irb(main):001:0> "a".encoding => #<Encoding:UTF-8>
精彩评论