如果指定了单个参数,则从 ARGF 读取的字符串将使用指定的编码进行标记。
如果给出了用冒号分隔的两个编码名称,例如“ascii:utf-8”,则读取的字符串从第一个编码(外部编码)转换为第二个编码(内部编码),然后用第二个编码标记。
所以我尝试了以下方法:
p RUBY_VERSION
p ARGF.external_encoding
ARGF.set_encoding('ascii')
p ARGF.readlines($/)
输出:
D:\Rubyscript\My ruby learning days>ruby true.rb a.txt
"2.0.0"
#<Encoding:IBM437>
["Hi! How are you?\n", "I am doing good,thanks."]
p RUBY_VERSION
p ARGF.external_encoding
ARGF.set_encoding(ARGF.external_encoding,'ascii')
p ARGF.readlines($/)
输出:
D:\Rubyscript\My ruby learning days>ruby true.rb a.txt
"2.0.0"
#<Encoding:IBM437>
["Hi! How are you?\n", "I am doing good,thanks."]
未发现编码更改。所以请告诉我正确的方法。