Установите UTF-8 в качестве кодировки строки по умолчанию в Heroku - PullRequest
15 голосов
/ 30 сентября 2011

Мне нужно изменить кодировку по умолчанию для рубиновой строки на 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>

Оба работают на ruby ​​1.9.2.Я также пытался установить это, но не сработало:

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

Идеи?

Спасибо, Фелипе

1 Ответ

32 голосов
/ 30 сентября 2011

В соответствии со службой поддержки Heroku, это волшебная вещь:

heroku config:add LANG=en_US.UTF-8

Хотя heroku console будет сообщать о кодировке строк как ASCII-8BIT, ваше приложение actall будет работать с правильной кодировкой,на основе конфигурации LANG var.Вы можете проверить это дважды:

$ 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...