irb中的Ruby字符串比较和字符编码

这是错误:

=> ["Mænd med navnet Kim", "30.094", "29.946", "-148", "Kvinder med navnet Kim", "341", "345", "4", "Mænd med navnet Kim Hansen", "1.586", "1.573", "-13", "Kvin der med navnet Kim Hansen", "5", "5", "0", "Mænd og kvinder med efternavnet Hans en", "226.040", "223.478", "-2.562"] irb(main):094:0> irb(main):095:0* @tester.index("Mænd med navnet Kim") => nil irb(main):096:0> @tester.index("Kvinder med navnet Kim") => 4 irb(main):097:0> @tester.index("Mænd med navnet Kim Hansen") => nil irb(main):098:0> @tester.index("Kvinder med navnet Kim Hansen") => 12 irb(main):099:0> @tester.index("Mænd og kvinder med efternavnet Hansen") => nil irb(main):100:0> 

示例尝试了Gsub方法:

  ) SyntaxError: (irb):112: syntax error, unexpected '}', expecting ')' 

由于您的输入字符串似乎是UTF-8,因此最简单的解决方案是使用相同的编码运行您的irb会话:

 irb -EUTF-8 

这应该使irb命令提示符中的字符串条目默认为UTF-8。

Ruby 1.9编码的优秀资源:
http://blog.grayproductions.net/articles/understanding_m17n