你在 shell 中的区域设置是什么?在基于 Linux 的系统中,您可以通过运行locale命令来检查这一点并通过以下方式更改它:
$ export LANG=en_US
Run Code Online (Sandbox Code Playgroud)
我的猜测是,您正在使用具有 UTF-8 编码的区域设置,这导致 Ruby 假定文本文件是根据 utf-8 编码规则创建的。你可以通过尝试看到这一点
$ LANG=en_GB ruby -e 'warn "foo".encoding.name'
US-ASCII
$ LANG=en_GB.UTF-8 ruby -e 'warn "foo".encoding.name'
UTF-8
Run Code Online (Sandbox Code Playgroud)
对于 Ruby 1.9 中字符串编码如何变化的更一般处理,我强烈推荐 http://blog.grayproducts.net/articles/ruby_19s_string
(代码示例假设 bash 或类似的 shell - C-shell 衍生物不同)
| 归档时间: |
|
| 查看次数: |
1136 次 |
| 最近记录: |