为ruby 1.9设置全局默认编码

gro*_*ser 12 ruby encoding ruby-1.9

我想告诉ruby一切都是utf8,除非另有说明,所以我不必在任何地方放置这些# encoding: utf-8评论.

tom*_*sop 16

你可以:

  1. 将您的RUBYOPT环境变量设置为"-E utf-8"
  2. 或使用https://github.com/m-ryan/magic_encoding


Arn*_*eur 13

如果您正在使用环境变量,一般方法是使用LC_ALL/LANG

两者都没有设置:回退到US-ASCII

$ LC_ALL= LANG= ruby -e 'p Encoding.default_external'
#<Encoding:US-ASCII>
Run Code Online (Sandbox Code Playgroud)

要么设置:使用该值

$ 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>
Run Code Online (Sandbox Code Playgroud)

两者都设置: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>
Run Code Online (Sandbox Code Playgroud)