我希望告诉 Ruby,在没有特别说明的情况下,一切都是 utf8 编码,这样我就不必到处添加 # encoding: utf-8
注释了。
您可以选择以下任意一种方式:
如果您正在使用环境变量,通常的方法是使用 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>
LC_ALL
的值,请使用ENV['LC_ALL']
。 - Arne Brasseur我刚从1.9升级到2.0,但由于某种原因,默认的外部编码仍然设置为ASCII。我通过在终端中输入以下内容来解决这个问题:
export RUBYOPT='-E utf-8'