Ruby 输入输出、文件和格式处理全解析
1. 编码处理
1.1 默认内部编码机制
在 Ruby 中,默认情况下读写数据时不会进行自动转码。不过,有两个命令行选项可以改变这一情况。
-
-E选项:可以设置应用于外部文件内容的默认编码。例如,-E xxx会将默认外部编码设置为xxx。同时,-E还可以接受第二个选项,通过-E external:internal来设置默认内部编码。- 示例:如果所有文件使用 ISO - 8859 - 1 编码,但希望程序将其内容当作 UTF - 8 处理,可以使用
$ ruby -E iso - 8859 - 1:utf - 8。 - 只指定内部编码:可以省略外部选项但保留冒号,如
$ ruby -E :utf - 8。
- 示例:如果所有文件使用 ISO - 8859 - 1 编码,但希望程序将其内容当作 UTF - 8 处理,可以使用
-
-U选项:由于 UTF - 8 可能是最佳的转码目标,Ruby 提供了-U命令行选项,将内部编码设置为 UTF - 8。
可以使用 default_internal 方法在代码中查询默认内部编码,如果未设置则返回 nil 。需要注意的是,当比较两个不同编码的字符串时,Ruby 不会对它们进行规范化处理,例如 UTF - 8 编码的
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



