Ruby on rails ruby File.expand_路径奇怪的行为

Ruby on rails ruby File.expand_路径奇怪的行为,ruby-on-rails,ruby,Ruby On Rails,Ruby,就File.expand_path api而言,只会遇到两个问题。如果有人能在这方面帮助我,我将不胜感激:-) Ruby:2.1.5p273(2014-11-13修订版48405)[x86_64-linux] 操作系统:Ubuntu 14.04.2 1.为什么Encoding.default\u内部不影响File.expand\u路径的编码 2.1.5 :002 > Encoding.default_internal="utf-8" => "utf-8" 2.1.5 :003 &

就File.expand_path api而言,只会遇到两个问题。如果有人能在这方面帮助我,我将不胜感激:-)

Ruby:2.1.5p273(2014-11-13修订版48405)[x86_64-linux] 操作系统:Ubuntu 14.04.2

1.为什么Encoding.default\u内部不影响File.expand\u路径的编码

2.1.5 :002 > Encoding.default_internal="utf-8"
 => "utf-8" 
2.1.5 :003 > File.expand_path("/").encoding
 => #<Encoding:US-ASCII> 
2.1.5:002>编码。默认\u internal=“utf-8”
=>“utf-8”
2.1.5:003>文件。展开_路径(“/”)。编码
=> # 

2.为什么File.expand\u路径返回不同的编码

2.1.5 :007 > File.expand_path("/").encoding
 => #<Encoding:US-ASCII> 
2.1.5 :008 > File.expand_path(".").encoding
 => #<Encoding:UTF-8> 
2.1.5:007>文件。展开\u路径(“/”)。编码
=> # 
2.1.5:008>文件。展开_路径(“.”)。编码
=> # 
我认为
String#编码
默认为“US-ASCII”

我的猜测是
String#encoding
检查字符串并检测它是否包含任何非ascii字符,在这种情况下,返回“UTF-8”

/
路径显然不包含任何非ascii字符,而
路径取决于代码的工作目录,因此如果当前工作目录的路径中有非ascii字符,则
String#encoding
将返回“UTF-8”