LINUX.ORG.RU

ruby hash странное поведение


0

1

Делаю hash, ключ — строка/буква (не ASCII), значение — число.

В irb работает, в однострочнике работает, в скрипте не работает.

$ irb
irb(main):001:0> h = Hash.new
=> {}
irb(main):002:0> h["б"] = 2
=> 2
irb(main):003:0> puts h["б"]
2
=> nil


$ ruby -e 'h = Hash.new; h["б"] = 2; puts h["б"]'
2

$ ./test.rb
./test.rb:4: invalid multibyte char (US-ASCII)
./test.rb:4: invalid multibyte char (US-ASCII)
./test.rb:4: syntax error, unexpected $end, expecting ']'
h["б"] = 2
     ^
$ cat test.rb
#!/usr/bin/ruby

h = Hash.new
h["б"] = 2
puts h["б"]

$ irb -v
irb 0.9.6(09/06/30)

$ ruby -v
ruby 1.9.2p0 (2010-08-18 revision 29036) [x86_64-linux]

$ locale
LANG=en_US.UTF-8
...

Что за фокусы? ЧТЯДНТ?

★★★★★

#!/usr/bin/ruby
# coding: utf-8

h = Hash.new
h["б"] = 2
puts h["б"]

Так работает, чтоб они были здоровы!

sdio ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.