Я хочу сказать ruby, что все это utf8, если только не указано иное, поэтому мне не нужно везде размещать эти комментарии # encoding: utf-8
.
Установить глобальную кодировку по умолчанию для ruby 1.9
Ответы (3)
Вы также можете:
- установите для переменной среды RUBYOPT значение "-E utf-8"
- или используйте https://github.com/m-ryan/magic_encoding.
person
tommasop
schedule
06.05.2011
№ 1 не очень портативный, а № 2 не очень приятный, но, по крайней мере, автоматический :)
- person grosser; 08.05.2011
# 1 вылетает из строя моя клавиатура Ruby в Windows 10 + Ruby 2.2. т.е. как только я пытаюсь написать любой акцент, на рубиновой консоли перестает работать клавиатура (кроме прерываний).
- person Cyril Duchon-Doris; 05.06.2016
@Cyril Duchon-Doris, ответ был для Ruby 1.9, поскольку ruby 2 UTF-8 является кодировкой по умолчанию.
- person tommasop; 05.06.2016
Если вы используете переменные среды, общий способ — использовать 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>
person
Arne Brasseur
schedule
12.07.2013
Это правильный ответ, если кому-то нужно добавить общесистемную кодировку.
- person Saurabh Bhatia; 10.01.2014
Что делать, если в моей системе нет переменной окружения LC_ALL. Он говорит, что LC_ALL не определен, когда я пытаюсь его использовать.
- person desbest; 14.08.2015
Приведенные выше примеры представляют собой код оболочки, а не код Ruby. Чтобы проверить значение
LC_ALL
в Ruby, используйте ENV['LC_ALL']
- person Arne Brasseur; 15.08.2015
Я только что обновился с 1.9 до 2.0, но по какой-то причине внешняя кодировка по умолчанию все еще была установлена на ASCII. Я смог исправить это, набрав в Терминале следующее:
export RUBYOPT='-E utf-8'
person
Community
schedule
12.07.2014