为ruby 1.9设置全局默认编码

时间:2011-05-06 08:30:01

标签: ruby encoding ruby-1.9

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

3 个答案:

答案 0 :(得分:16)

你可以:

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

答案 1 :(得分:12)

如果您正在使用环境变量,一般方法是使用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>

答案 2 :(得分:0)

我刚刚从1.9升级到2.0,但由于某种原因,默认外部编码仍设置为ASCII。我可以通过在终端中键入以下内容来修复它:

export RUBYOPT='-E utf-8'