如何在Ruby中设置stdin的编码

时间:2015-02-26 17:14:27

标签: ruby encoding

我希望我的脚本能够从stdin获取输入,其中数据可能以UTF8或UTF16编码提供。

类似的东西:

datasource | my-script -e utf8

如何设置stdin的external_encoding?

1 个答案:

答案 0 :(得分:1)

在您将ruby定义为解释器的first line of the script中,您可以添加--encoding utf-8参数,以便指定stdin编码。

实施例

#!/usr/bin/env ruby --encoding utf-8

text = ARGF.read

来自man ruby

 -E external[:internal]
 --encoding external[:internal]
                Specifies the default value(s) for external encodings and
                internal encoding. Values should be separated with colon
                (:).

                You can omit the one for internal encodings, then the
                value (Encoding.default_internal) will be nil.