撬开像[äöüßÄÖÜß](utf-8编码)这样的字符? (可能是特定于Windows的问题?)

时间:2013-04-25 09:28:25

标签: ruby windows utf-8 character-encoding pry

[我正在使用这些德语字符处理的所有脚本都是UTF-8,顶部有#encoding: utf-8Encoding.external_default = 'utf-8',而不是我认为真的相关因为在脚本中定义的字符串中的德语字符无法正确显示。)]

所有这些东西在windows命令提示符和使用irb等时显示正常。

尽管如此,我甚至无法在狡猾的提示下输入这些字符。尝试粘贴puts "äöüÄÖÜß"获取puts "。试图以某种方式实际键入它们冻结 pry,我必须^ D out。

使用pry,我在其中运行了一个带有GC = "äöüÄÖÜß"的脚本,这就是我得到的那种garbledeegook:

[1] pry(main)> GC                               
=> "├ñ├Â├╝├ä├û├£├ƒ"                             
[2] pry(main)> GC.split('').each{ |c| puts c }  
ä                                              
├                                              
├╝                                              
Ä                                              
Ö                                              
Ü                                              
ß                                              
=> ["├ñ", "├Â", "├╝", "├ä", "├û", "├£", "├ƒ"]
[3] pry(main)> File.open("output.txt", 'w'){|f| GC.split('').each{ |c| f.puts c } }

最后一行创建的测试文件output.txt 在utf-8中,并显示为:

ä
ö
ü
Ä
Ö
Ü
ß

有没有人有任何想法如何解决这个问题?

1 个答案:

答案 0 :(得分:3)

我知道如果您使用Ruby支持安装readline,那么您就没有此问题。要做到这一点,如果你使用rbenv(使用ruby-build),你将需要这样的东西:

RUBY_CONFIGURE_OPTS="--with-readline-dir=`brew --prefix readline`" rbenv install 1.9.3

我不知道是否还有其他解决方案。