Ruby on rails ruby File.expand_路径奇怪的行为
就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路径的编码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 &
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”