4

[我使用这些德语字符的所有脚本本身都是 UTF-8 格式,#encoding: utf-8在顶部(而且Encoding.external_default = 'utf-8',我认为这并不是真正相关的,因为脚本中定义的字符串中的德语字符不会显示对。) ]

所有这些东西在 Windows 命令提示符下和使用 irb 等都可以正常显示。

不过,我什至不能在 pry 提示符下输入这些字符。试图粘贴puts "äöüÄÖÜß"得到puts "。尝试实际键入它们会以某种方式冻结撬动,我必须 ^D 出来。

使用 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 格式,内容如下:

ä
ö
ü
Ä
Ö
Ü
ß

有谁知道如何解决这个问题?

4

1 回答 1

3

我知道如果您在支持下安装Rubyreadline那么您就不会有这个问题。为此,如果您正在使用rbenv(使用 ruby​​-build),您将需要这样的东西:

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

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

于 2013-07-03T19:14:59.040 回答