Ruby"得到"不使用日文字符

时间:2018-04-08 23:36:17

标签: ruby unicode cjk

我无法通过控制台将日文字符作为用户输入。

我写了一个简单的程序来举例说明:

print "1> "
line1 = gets
print "2> "
line2 = gets
print "3> "
line3 = gets
puts line1 + line2 + line3

当我跑步时,我得到:

1> 古池や
2> 蛙飛び込む
3> 水の音
???
?????
???

我已经检查过它不是输出问题,因为print "おはよう"完美无缺。所以我假设它是输入的错误。我使用PowerShell在Win10上运行它,所以它也可能是一个控制台。

提前致谢!

编辑:

irb(main):001:0> RUBY_VERSION
=> "2.4.3"

此外,当:

PS> Read-Host >> text.txt
お早う

text.txt,有效お早う

Ruby确实认为它是UTF-8:

irb(main):001:0> Encoding.default_external
=> #<Encoding:UTF-8>

但是因为text.txt创建为UTF-16 LE(或UCS-2 LE BOM,具体取决于我问的文本编辑器)我猜不到。

我尝试手动将text.txt更改为UTF-8,并且在运行上述文件时,该文件变为:��J0CQl�

0 个答案:

没有答案