Установить глобальную кодировку по умолчанию для ruby ​​1.9 - PullRequest
12 голосов
/ 06 мая 2011

Я хочу сказать ruby, что все - utf8, за исключением случаев, когда указано иное, поэтому мне не нужно размещать эти # encoding: utf-8 комментарии везде.

Ответы [ 3 ]

16 голосов
/ 06 мая 2011

Вы можете либо:

  1. установить для переменной среды RUBYOPT значение "-E utf-8"
  2. или используйте https://github.com/m-ryan/magic_encoding
12 голосов
/ 12 июля 2013

Если вы используете переменные окружения, общий способ - использовать LC_ALL / LANG

Не установлен ни один: откат к US-ASCII

$ LC_ALL= LANG= ruby -e 'p Encoding.default_external'
#<Encoding:US-ASCII>

Любой из них установлен: это значение используется

$ LC_ALL=en_US.UTF-8 LANG= ruby -e 'p Encoding.default_external'
#<Encoding:UTF-8>

$ LC_ALL= LANG=en_US.UTF-8 ruby -e 'p Encoding.default_external'
#<Encoding:UTF-8>

Обе установлены: LC_ALL имеет приоритет

$ LC_ALL=C LANG=en_US.UTF-8 ruby -e 'p Encoding.default_external'
#<Encoding:US-ASCII>

$ LC_ALL=en_US.UTF-8 LANG=C ruby -e 'p Encoding.default_external'
#<Encoding:UTF-8>
0 голосов
/ 12 июля 2014

Я только что обновил с 1.9 до 2.0, но по какой-то причине внешняя кодировка по умолчанию все еще была установлена ​​на ASCII.Я смог это исправить, набрав в терминале следующее:

export RUBYOPT='-E utf-8'
...