Установите UTF-8 в качестве кодировки строки по умолчанию в Heroku
Мне нужно изменить кодировку строки ruby по умолчанию на UTF-8 в Heroku. По какой-то причине это US-ASCII.
$ heroku console
Ruby console for myapp.heroku.com
>> "a".encoding
=> #<Encoding:ASCII-8BIT>
Однако, если я запускаю irb локально, я получаю другой результат:
$ irb
ruby-1.9.2-p136 :001 > "a".encoding
=> #<Encoding:UTF-8>
Оба работают на рубине 1.9.2. Я тоже пытался установить это, но не работал:
Encoding.default_internal = Encoding.default_external = "UTF-8"
Идеи?
Спасибо,
Фелипе
Ответы
Ответ 1
В соответствии с персоналом поддержки Heroku это волшебная вещь:
heroku config:add LANG=en_US.UTF-8
Хотя heroku console
будет хранить кодировку строк в формате 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>