我无法通过控制台将日文字符作为用户输入。
我写了一个简单的程序来举例说明:
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�