【问题标题】:ruby File.expand_path strange behaviourruby File.expand_path 奇怪的行为
【发布时间】:2015-06-26 17:38:07
【问题描述】:

刚刚遇到 2 个关于 File.expand_path api 的问题。如果有人可以帮助我,将不胜感激:-)

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

1.为什么Encoding.default_internal不影响File.expand_path的编码?

2.1.5 :002 > Encoding.default_internal="utf-8"
 => "utf-8" 
2.1.5 :003 > File.expand_path("/").encoding
 => #<Encoding:US-ASCII> 

.

2.为什么 File.expand_path 返回不同的编码?

2.1.5 :007 > File.expand_path("/").encoding
 => #<Encoding:US-ASCII> 
2.1.5 :008 > File.expand_path(".").encoding
 => #<Encoding:UTF-8> 

【问题讨论】:

    标签: ruby-on-rails ruby


    【解决方案1】:

    我认为String#encoding 默认为“US-ASCII”。

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-07-25
      • 2019-06-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多