Set global default encoding for ruby 1.9

China☆狼群 提交于 2019-11-26 11:24:00

问题


I want to tell ruby that everything is utf8, except when stated otherwise, so I dont have to place these # encoding: utf-8 comments everywhere.


回答1:


You can either:

  1. set your RUBYOPT environment variable to "-E utf-8"
  2. or use https://github.com/m-ryan/magic_encoding



回答2:


If you're using environment variables, the general way is to use LC_ALL / LANG

Neither is set : fallback to US-ASCII

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

Either is set : that value is used

$ 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>

Both are set : LC_ALL takes precedence

$ 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>



回答3:


I just upgraded from 1.9 to 2.0, but for some reason the default external encoding was still set to ASCII. I was able to fix it by typing the following in Terminal:

export RUBYOPT='-E utf-8'


来源:https://stackoverflow.com/questions/5908774/set-global-default-encoding-for-ruby-1-9

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!